[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28405] trunk/blender/source/blender: fix for a library linking problem where a proxy object linked into a blend would cause the proxy , driver's ID to be directly linked as well.
Campbell Barton
ideasman42 at gmail.com
Sun Apr 25 02:19:10 CEST 2010
Revision: 28405
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28405
Author: campbellbarton
Date: 2010-04-25 02:19:10 +0200 (Sun, 25 Apr 2010)
Log Message:
-----------
fix for a library linking problem where a proxy object linked into a blend would cause the proxy, driver's ID to be directly linked as well.
eg. character.blend -> anim.blend -> comp.blend
... Would link the character.blend directly into comp.blend because on driver ID's.
In this case id_lib_extern doenst need to be called because the object its linked from is a library.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/object.c
trunk/blender/source/blender/makesdna/DNA_ID.h
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2010-04-24 22:34:18 UTC (rev 28404)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2010-04-25 00:19:10 UTC (rev 28405)
@@ -1469,10 +1469,16 @@
/* all drivers */
DRIVER_TARGETS_LOOPER(dvar)
{
- if ((Object *)dtar->id == target)
- dtar->id= (ID *)ob;
- else
- id_lib_extern((ID *)dtar->id);
+ if(dtar->id) {
+ if ((Object *)dtar->id == target)
+ dtar->id= (ID *)ob;
+ else {
+ /* only on local objects because this causes indirect links a -> b -> c,blend to point directly to a.blend
+ * when a.blend has a proxy thats linked into c.blend */
+ if(ob->id.lib==NULL)
+ id_lib_extern((ID *)dtar->id);
+ }
+ }
}
DRIVER_TARGETS_LOOPER_END
}
Modified: trunk/blender/source/blender/makesdna/DNA_ID.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_ID.h 2010-04-24 22:34:18 UTC (rev 28404)
+++ trunk/blender/source/blender/makesdna/DNA_ID.h 2010-04-25 00:19:10 UTC (rev 28405)
@@ -205,8 +205,8 @@
#define LIB_EXTERN 1
#define LIB_INDIRECT 2
#define LIB_TEST 8
-#define LIB_TESTEXT 9
-#define LIB_TESTIND 10
+#define LIB_TESTEXT (LIB_TEST | LIB_EXTERN)
+#define LIB_TESTIND (LIB_TEST | LIB_INDIRECT)
#define LIB_READ 16
#define LIB_NEEDLINK 32
More information about the Bf-blender-cvs
mailing list