[Bf-blender-cvs] [12bdf61fc3a] undo-experiments: undoexp: transfer set of used ID pointers from old to new bmain in undo case.
Bastien Montagne
noreply at git.blender.org
Fri Feb 14 15:35:37 CET 2020
Commit: 12bdf61fc3a63a9c20bcbbf4f3a586f5597f4ffa
Author: Bastien Montagne
Date: Fri Feb 14 15:35:01 2020 +0100
Branches: undo-experiments
https://developer.blender.org/rB12bdf61fc3a63a9c20bcbbf4f3a586f5597f4ffa
undoexp: transfer set of used ID pointers from old to new bmain in undo case.
===================================================================
M source/blender/blenloader/intern/readfile.c
===================================================================
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 80f5a49c762..e44f6693a0c 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9902,7 +9902,13 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
bfd = MEM_callocN(sizeof(BlendFileData), "blendfiledata");
bfd->main = BKE_main_new();
- BKE_main_idmemset_ensure(bfd->main);
+ if (fd->memfile != NULL) {
+ /* In undo case we want to keep the set of qlreqdy used ID pointers... */
+ BKE_main_idmemset_transfer_ownership(bfd->main, fd->old_mainlist->first);
+ }
+ else {
+ BKE_main_idmemset_ensure(bfd->main);
+ }
bfd->main->versionfile = fd->fileversion;
bfd->type = BLENFILETYPE_BLEND;
More information about the Bf-blender-cvs
mailing list