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;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to