BKE_library: Add func to check an ID is actually in G_MAIN database.
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 22 Jun 2018 09:37:08 +0000 (11:37 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 22 Jun 2018 09:37:08 +0000 (11:37 +0200)
source/blender/blenkernel/BKE_library.h
source/blender/blenkernel/intern/library.c

index 935e90d..c2b971a 100644 (file)
@@ -200,6 +200,8 @@ void BKE_library_make_local(
 void BKE_id_tag_set_atomic(struct ID *id, int tag);
 void BKE_id_tag_clear_atomic(struct ID *id, int tag);
 
+bool BKE_id_is_in_gobal_main(struct ID *id);
+
 /* use when "" is given to new_id() */
 #define ID_FALLBACK_NAME N_("Untitled")
 
index 37d7004..444e155 100644 (file)
@@ -2414,3 +2414,10 @@ void BKE_id_tag_clear_atomic(ID *id, int tag)
 {
        atomic_fetch_and_and_int32(&id->tag, ~tag);
 }
+
+/** Check that given ID pointer actually is in G_MAIN.
+ * Main intended use is for debug asserts in places we cannot easily get rid of G_Main... */
+bool BKE_id_is_in_gobal_main(ID *id) {
+       return (BLI_findindex(which_libbase(G_MAIN, GS(id->name)), id) != -1);
+}
+