Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2022-01-05 12:39:09 +0300
committerBastien Montagne <bastien@blender.org>2022-01-05 12:39:09 +0300
commit33400ffcc9821506eb12d3189d220da6d0d8ba14 (patch)
tree7a44122bff3bcb8791f1aaa4b2cf39e9e30260a8 /source/blender/blenkernel
parent5df916f23f0d742a531136279ca6c126d3fb03b3 (diff)
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.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/lib_id_delete.c3
1 files changed, 3 insertions, 0 deletions
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;