diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-08-26 15:46:03 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-08-26 15:51:30 +0300 |
commit | 16c1b10ed240b930b29f81ae5970a174808f53d7 (patch) | |
tree | 7fffd7c797d93c4b0a0f35afdfc3dfc7f5587f51 /source/blender/draw | |
parent | 81e2fdcd1d8a338f678ac1a4ae61ae5717836376 (diff) |
Fix T69146: Segment Fault using Undo for file with several scenes and script.
The specifc bug here came fro; some IDProperties ID pointer storing
references to workspaces.
But that was actually a main loophole in that 'unndoing data while
keeping same UI' process, as we never know who might store a pointer to
one of those datablocks that we want to keep the 'old' version off.
It might actually be ever more needed when we start undoing (changing)
only the IDs actually modified in an undo step...
Notes:
* While not ideal, I think we can afford an extra looping over the whole
Main DB here... Remapping process in itself is fairly cheap, thanks to
the hashes.
* This commit is considered rather risky (especially thanks to 'private'
IDs), think it should work fine for now, unless some IDPointers start
storing references to private IDs...
Once D5559 is in, we shall do another pass here, probably also forbids
assigning private IDs to IDProperties, etc.
Diffstat (limited to 'source/blender/draw')
0 files changed, 0 insertions, 0 deletions