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:
authorTon Roosendaal <ton@blender.org>2010-12-17 17:20:20 +0300
committerTon Roosendaal <ton@blender.org>2010-12-17 17:20:20 +0300
commite5e039d626656ac430cd750f5761adfa8d94a98a (patch)
treedd0dcef722eb23a89be2476674419c0415d0ee8d /source/blender/blenkernel/intern/library.c
parent12a93c5b0f4c3d2de88161669f2dd655646f222e (diff)
Bugfix #25264
Bad user counting went on, ID users could be set zero whilst having Fake user set. Also ensured the code using the BKE calls for increment/decrement.
Diffstat (limited to 'source/blender/blenkernel/intern/library.c')
-rw-r--r--source/blender/blenkernel/intern/library.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 8e1220dde24..ce9e7ddf0ce 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -138,8 +138,14 @@ void id_us_plus(ID *id)
void id_us_min(ID *id)
{
- if(id)
- id->us--;
+ if(id) {
+ if(id->us<2 && (id->flag & LIB_FAKEUSER))
+ id->us= 1;
+ else if(id->us<=0)
+ printf("ID user decrement error: %s \n", id->name);
+ else
+ id->us--;
+ }
}
int id_make_local(ID *id, int test)