[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59691] branches/soc-2013-depsgraph_mt/ source/blender/blenkernel/intern/depsgraph.c: Quick followup for the previous commit to prevent crashes when having dependency cycles .
Sergey Sharybin
sergey.vfx at gmail.com
Sat Aug 31 13:01:55 CEST 2013
Revision: 59691
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59691
Author: nazgul
Date: 2013-08-31 11:01:55 +0000 (Sat, 31 Aug 2013)
Log Message:
-----------
Quick followup for the previous commit to prevent crashes when having dependency cycles.
Modified Paths:
--------------
branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/depsgraph.c
Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/depsgraph.c 2013-08-31 11:01:50 UTC (rev 59690)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/depsgraph.c 2013-08-31 11:01:55 UTC (rev 59691)
@@ -2830,16 +2830,25 @@
static void tag_flush_recurs(DagNode *node)
{
DagAdjList *itA;
+ int color = node->color;
+ /* Quick hack for recursion detection. */
+ if (node->color == DAG_GRAY) {
+ return;
+ }
+ node->color = DAG_GRAY;
+
for (itA = node->child; itA; itA = itA->next) {
if (itA->node != node) {
tag_flush_recurs(itA->node);
if (itA->node->color == DAG_WHITE) {
- node->color = DAG_WHITE;
+ color = DAG_WHITE;
}
}
}
+
+ node->color = color;
}
void DAG_tag_flush_nodes(Scene *scene)
More information about the Bf-blender-cvs
mailing list