[Bf-blender-cvs] [b7dc0346aae] master: BMain: Add utils to check if a Main is empty or not.
Bastien Montagne
noreply at git.blender.org
Wed Oct 6 16:53:26 CEST 2021
Commit: b7dc0346aae849d2ba3f81839a6fd682ff24114a
Author: Bastien Montagne
Date: Wed Oct 6 16:41:08 2021 +0200
Branches: master
https://developer.blender.org/rBb7dc0346aae849d2ba3f81839a6fd682ff24114a
BMain: Add utils to check if a Main is empty or not.
Mostly intended for debug code (asserts).
===================================================================
M source/blender/blenkernel/BKE_main.h
M source/blender/blenkernel/intern/main.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h
index 93d5b5c5aa6..3108dfd5d8f 100644
--- a/source/blender/blenkernel/BKE_main.h
+++ b/source/blender/blenkernel/BKE_main.h
@@ -201,6 +201,8 @@ typedef struct Main {
struct Main *BKE_main_new(void);
void BKE_main_free(struct Main *mainvar);
+bool BKE_main_is_empty(struct Main *bmain);
+
void BKE_main_lock(struct Main *bmain);
void BKE_main_unlock(struct Main *bmain);
diff --git a/source/blender/blenkernel/intern/main.c b/source/blender/blenkernel/intern/main.c
index 9c3291edbcc..583feacc04b 100644
--- a/source/blender/blenkernel/intern/main.c
+++ b/source/blender/blenkernel/intern/main.c
@@ -205,6 +205,17 @@ void BKE_main_free(Main *mainvar)
MEM_freeN(mainvar);
}
+/* Check whether given `bmain` is empty or contains some IDs. */
+bool BKE_main_is_empty(struct Main *bmain)
+{
+ ID *id_iter;
+ FOREACH_MAIN_ID_BEGIN (bmain, id_iter) {
+ return false;
+ }
+ FOREACH_MAIN_ID_END;
+ return true;
+}
+
void BKE_main_lock(struct Main *bmain)
{
BLI_spin_lock((SpinLock *)bmain->lock);
More information about the Bf-blender-cvs
mailing list