[Bf-blender-cvs] [ccecc409e4e] master: Fix T62098: Outliner: Delete hierarchy crash.
Bastien Montagne
noreply at git.blender.org
Fri Mar 1 23:05:16 CET 2019
Commit: ccecc409e4eae160609bfd7e6803cda2afd0c0eb
Author: Bastien Montagne
Date: Fri Mar 1 23:02:25 2019 +0100
Branches: master
https://developer.blender.org/rBccecc409e4eae160609bfd7e6803cda2afd0c0eb
Fix T62098: Outliner: Delete hierarchy crash.
Stupid mistake in own logic would prevent first deleted ID to be
properly unlinked from rest of .blend file before its deletion...
===================================================================
M source/blender/blenkernel/intern/library_remap.c
===================================================================
diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c
index e965e2a6aac..c4cd14e027e 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -956,6 +956,7 @@ static void id_delete(Main *bmain, const bool do_tagged_deletion)
{
const int tag = LIB_TAG_DOIT;
ListBase *lbarray[MAX_LIBARRAY];
+ Link dummy_link = {0};
int base_count, i;
/* Used by batch tagged deletion, when we call BKE_id_free then, id is no more in Main database,
@@ -1000,11 +1001,8 @@ static void id_delete(Main *bmain, const bool do_tagged_deletion)
}
}
if (last_remapped_id == NULL) {
- last_remapped_id = tagged_deleted_ids.first;
- if (last_remapped_id == NULL) {
- BLI_assert(!keep_looping);
- break;
- }
+ dummy_link.next = tagged_deleted_ids.first;
+ last_remapped_id = (ID *)(&dummy_link);
}
for (id = last_remapped_id->next; id; id = id->next) {
/* Will tag 'never NULL' users of this ID too.
More information about the Bf-blender-cvs
mailing list