[Bf-blender-cvs] [2678b12] master: Fix T38216: Cycles render crash Blender in some scene in versions

Sergey Sharybin noreply at git.blender.org
Wed Jan 15 11:22:31 CET 2014


Commit: 2678b12a368dee19c01b42a41e15980002f01d18
Author: Sergey Sharybin
Date:   Wed Jan 15 15:48:51 2014 +0600
https://developer.blender.org/rB2678b12a368dee19c01b42a41e15980002f01d18

Fix T38216: Cycles render crash Blender in some scene in versions

Issue was caused by evaluation flags getter function polluting
the DAG. Need to use dag_find_node() instead.

Still need to doublecheck exporting objects with curve deform
works properly. On the first thought it should, but might be
wrong again.

===================================================================

M	source/blender/blenkernel/intern/depsgraph.c

===================================================================

diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index b9cbd6d..539ed8f 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -2910,8 +2910,18 @@ const char *DAG_get_node_name(void *node_v)
 
 short DAG_get_eval_flags_for_object(struct Scene *scene, void *object)
 {
-	DagNode *node = dag_get_node(scene->theDag, object);
-	return node->eval_flags;
+	DagNode *node = dag_find_node(scene->theDag, object);
+
+	if (node) {
+		return node->eval_flags;
+	}
+	else {
+		/* Happens when external render engine exports temporary objects
+		 * which are not in the DAG.
+		 */
+		/* TODO(sergey): Doublecheck objects with Curve Deform exports all fine. */
+		return 0;
+	}
 }
 
 bool DAG_is_acyclic(Scene *scene)




More information about the Bf-blender-cvs mailing list