diff options
author | Ton Roosendaal <ton@blender.org> | 2010-12-17 17:20:20 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2010-12-17 17:20:20 +0300 |
commit | e5e039d626656ac430cd750f5761adfa8d94a98a (patch) | |
tree | dd0dcef722eb23a89be2476674419c0415d0ee8d /source/blender/blenkernel/intern/library.c | |
parent | 12a93c5b0f4c3d2de88161669f2dd655646f222e (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.c | 10 |
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) |