From ccecc409e4eae160609bfd7e6803cda2afd0c0eb Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Fri, 1 Mar 2019 23:02:25 +0100 Subject: 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... --- source/blender/blenkernel/intern/library_remap.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to '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. -- cgit v1.2.3