diff options
author | Bastien Montagne <bastien@blender.org> | 2021-10-06 17:41:08 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2021-10-06 17:53:20 +0300 |
commit | b7dc0346aae849d2ba3f81839a6fd682ff24114a (patch) | |
tree | 3d46f78470d161cca14dc63f8019b49088ca6d17 /source/blender/blenkernel | |
parent | 0194e54fd3276a722ea5c2a8cdff6486c30dcbad (diff) |
BMain: Add utils to check if a Main is empty or not.
Mostly intended for debug code (asserts).
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_main.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/main.c | 11 |
2 files changed, 13 insertions, 0 deletions
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); |