[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33738] trunk/blender/source/blender: Bugfix #25264
Ton Roosendaal
ton at blender.org
Fri Dec 17 15:20:21 CET 2010
Revision: 33738
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33738
Author: ton
Date: 2010-12-17 15:20:20 +0100 (Fri, 17 Dec 2010)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/library.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/makesrna/intern/rna_ID.c
Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c 2010-12-17 13:29:40 UTC (rev 33737)
+++ trunk/blender/source/blender/blenkernel/intern/library.c 2010-12-17 14:20:20 UTC (rev 33738)
@@ -138,8 +138,14 @@
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)
Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c 2010-12-17 13:29:40 UTC (rev 33737)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c 2010-12-17 14:20:20 UTC (rev 33738)
@@ -252,8 +252,8 @@
break;
case UI_ID_FAKE_USER:
if(id) {
- if(id->flag & LIB_FAKEUSER) id->us++;
- else id->us--;
+ if(id->flag & LIB_FAKEUSER) id_us_plus(id);
+ else id_us_min(id);
}
else return;
break;
Modified: trunk/blender/source/blender/makesrna/intern/rna_ID.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ID.c 2010-12-17 13:29:40 UTC (rev 33737)
+++ trunk/blender/source/blender/makesrna/intern/rna_ID.c 2010-12-17 14:20:20 UTC (rev 33738)
@@ -190,11 +190,11 @@
if(value && !(id->flag & LIB_FAKEUSER)) {
id->flag |= LIB_FAKEUSER;
- id->us++;
+ id_us_plus(id);
}
else if(!value && (id->flag & LIB_FAKEUSER)) {
id->flag &= ~LIB_FAKEUSER;
- id->us--;
+ id_us_min(id);
}
}
@@ -241,7 +241,7 @@
ID *newid;
if(id_copy(id, &newid, 0)) {
- if(newid) newid->us--;
+ if(newid) id_us_min(newid);
return newid;
}
More information about the Bf-blender-cvs
mailing list