[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