[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