[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56707] trunk/blender/source/blender/ blenkernel/intern: Fix material/ lamp drivers not working sometimes when they were used by multiple

Brecht Van Lommel brechtvanlommel at pandora.be
Sun May 12 15:33:20 CEST 2013


Revision: 56707
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56707
Author:   blendix
Date:     2013-05-12 13:33:20 +0000 (Sun, 12 May 2013)
Log Message:
-----------
Fix material/lamp drivers not working sometimes when they were used by multiple
objects, found while looking into another bug.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/blenkernel/intern/lamp.c
    trunk/blender/source/blender/blenkernel/intern/material.c

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2013-05-12 13:16:11 UTC (rev 56706)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2013-05-12 13:33:20 UTC (rev 56707)
@@ -372,8 +372,8 @@
 	 */
 	if (ma->id.flag & LIB_DOIT)
 		return;
-	else
-		ma->id.flag |= LIB_DOIT;
+
+	ma->id.flag |= LIB_DOIT;
 	
 	/* material itself */
 	if (ma->adt)
@@ -386,6 +386,8 @@
 	/* material's nodetree */
 	if (ma->nodetree)
 		dag_add_shader_nodetree_driver_relations(dag, node, ma->nodetree);
+
+	ma->id.flag &= ~LIB_DOIT;
 }
 
 /* recursive handling for lamp drivers */
@@ -397,8 +399,8 @@
 	 */
 	if (la->id.flag & LIB_DOIT)
 		return;
-	else
-		la->id.flag |= LIB_DOIT;
+
+	la->id.flag |= LIB_DOIT;
 	
 	/* lamp itself */
 	if (la->adt)
@@ -411,6 +413,8 @@
 	/* lamp's nodetree */
 	if (la->nodetree)
 		dag_add_shader_nodetree_driver_relations(dag, node, la->nodetree);
+
+	la->id.flag &= ~LIB_DOIT;
 }
 
 static void dag_add_collision_field_relation(DagForest *dag, Scene *scene, Object *ob, DagNode *node, int skip_forcefield, bool no_collision)

Modified: trunk/blender/source/blender/blenkernel/intern/lamp.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lamp.c	2013-05-12 13:16:11 UTC (rev 56706)
+++ trunk/blender/source/blender/blenkernel/intern/lamp.c	2013-05-12 13:33:20 UTC (rev 56707)
@@ -258,8 +258,8 @@
 	 * in the meantime... [#32017] */
 	if (la->id.flag & LIB_DOIT)
 		return;
-	else
-		la->id.flag |= LIB_DOIT;
+
+	la->id.flag |= LIB_DOIT;
 	
 	/* lamp itself */
 	if (la->adt && la->adt->drivers.first)
@@ -268,5 +268,7 @@
 	/* nodes */
 	if (la->nodetree)
 		lamp_node_drivers_update(scene, la->nodetree, ctime);
+
+	la->id.flag &= ~LIB_DOIT;
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/material.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/material.c	2013-05-12 13:16:11 UTC (rev 56706)
+++ trunk/blender/source/blender/blenkernel/intern/material.c	2013-05-12 13:33:20 UTC (rev 56707)
@@ -1133,8 +1133,8 @@
 	 */
 	if (ma->id.flag & LIB_DOIT)
 		return;
-	else
-		ma->id.flag |= LIB_DOIT;
+
+	ma->id.flag |= LIB_DOIT;
 	
 	/* material itself */
 	if (ma->adt && ma->adt->drivers.first) {
@@ -1145,6 +1145,8 @@
 	if (ma->nodetree) {
 		material_node_drivers_update(scene, ma->nodetree, ctime);
 	}
+
+	ma->id.flag &= ~LIB_DOIT;
 }
 	
 /* ****************** */




More information about the Bf-blender-cvs mailing list