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 <montagne29@wanadoo.fr>2015-11-10 18:20:28 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-11-10 18:21:09 +0300
commitd9c89f175f945e5f7fb40ddd3326ceeca21ad366 (patch)
tree199de6098222eec072cc89d29c4685c4c8bd8c03 /source/blender/blenkernel
parent3b38fd6bf92cd9abc502346198e54191a247e860 (diff)
Cleanup: ID usercount: moar checks and factorization. No change in behavior expected.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/library.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index b76323bef31..1dff424b6cc 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -163,8 +163,13 @@ void id_lib_extern(ID *id)
void id_us_ensure_real(ID *id)
{
if (id) {
- if (ID_REAL_USERS(id) <= 0) {
- id->us = MAX2(id->us, 0) + 1;
+ const int limit = ID_FAKE_USERS(id);
+ if (id->us <= limit) {
+ if (id->us < limit) {
+ printf("ID user count error: %s (from '%s')\n", id->name, id->lib ? id->lib->filepath : "[Main]");
+ BLI_assert(0);
+ }
+ id->us = limit + 1;
}
}
}
@@ -172,6 +177,7 @@ void id_us_ensure_real(ID *id)
void id_us_plus(ID *id)
{
if (id) {
+ BLI_assert(id->us >= 0);
id->us++;
if (id->flag & LIB_INDIRECT) {
id->flag -= LIB_INDIRECT;
@@ -184,7 +190,7 @@ void id_us_plus(ID *id)
void id_us_min(ID *id)
{
if (id) {
- const int limit = (id->flag & LIB_FAKEUSER) ? 1 : 0;
+ const int limit = ID_FAKE_USERS(id);
if (id->us <= limit) {
printf("ID user decrement error: %s (from '%s')\n", id->name, id->lib ? id->lib->filepath : "[Main]");
BLI_assert(0);