Blender Git Commit Log

Git Commits -> Revision 16c1b10

Revision 16c1b10 by Bastien Montagne (master)
August 26, 2019, 12:51 (GMT)
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.

Commit Details:

Full Hash: 16c1b10ed240b930b29f81ae5970a174808f53d7
Parent Commit: 81e2fdc
Lines Changed: +52, -0

1 Modified Path:

/source/blender/blenloader/intern/readfile.c (+52, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021