[Bf-blender-cvs] [33400ffcc98] master: IDManagement: Add assert against no-main IDs passed to `BKE_id_delete`.

Bastien Montagne noreply at git.blender.org
Wed Jan 5 10:40:24 CET 2022


Commit: 33400ffcc9821506eb12d3189d220da6d0d8ba14
Author: Bastien Montagne
Date:   Wed Jan 5 10:39:09 2022 +0100
Branches: master
https://developer.blender.org/rB33400ffcc9821506eb12d3189d220da6d0d8ba14

IDManagement: Add assert against no-main IDs passed to `BKE_id_delete`.

This high-level function can only deal with IDs in main, trying to use
it to delete/free a no-main ID does nothing.

===================================================================

M	source/blender/blenkernel/intern/lib_id_delete.c

===================================================================

diff --git a/source/blender/blenkernel/intern/lib_id_delete.c b/source/blender/blenkernel/intern/lib_id_delete.c
index 1922a54addb..6d2e89187f7 100644
--- a/source/blender/blenkernel/intern/lib_id_delete.c
+++ b/source/blender/blenkernel/intern/lib_id_delete.c
@@ -350,6 +350,9 @@ static size_t id_delete(Main *bmain, const bool do_tagged_deletion)
 
 void BKE_id_delete(Main *bmain, void *idv)
 {
+  BLI_assert_msg((((ID *)idv)->tag & LIB_TAG_NO_MAIN) == 0,
+                 "Cannot be used with IDs outside of Main");
+
   BKE_main_id_tag_all(bmain, LIB_TAG_DOIT, false);
   ((ID *)idv)->tag |= LIB_TAG_DOIT;



More information about the Bf-blender-cvs mailing list