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