Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-01-15 13:48:51 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-01-15 13:54:27 +0400
commit2678b12a368dee19c01b42a41e15980002f01d18 (patch)
tree3af06c47c140f481cf4e2f97a893f29d5fd96f0f /source/blender/blenkernel/intern/depsgraph.c
parent6ba02681decaf34f618e3519f6ad7f49604750cd (diff)
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.
Diffstat (limited to 'source/blender/blenkernel/intern/depsgraph.c')
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index b9cbd6d2019..539ed8f2e57 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)