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)