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:
Diffstat (limited to 'source/blender/depsgraph/intern/depsgraph_query_foreach.cc')
-rw-r--r--source/blender/depsgraph/intern/depsgraph_query_foreach.cc28
1 files changed, 17 insertions, 11 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_query_foreach.cc b/source/blender/depsgraph/intern/depsgraph_query_foreach.cc
index 83d81d82b26..c8aaf353874 100644
--- a/source/blender/depsgraph/intern/depsgraph_query_foreach.cc
+++ b/source/blender/depsgraph/intern/depsgraph_query_foreach.cc
@@ -178,21 +178,27 @@ static void deg_foreach_ancestor_ID(const Depsgraph *graph,
}
/* Schedule incoming operation nodes. */
if (op_node->inlinks.size() == 1) {
- OperationDepsNode *from_node = (OperationDepsNode *)op_node->inlinks[0]->from;
- if (from_node->scheduled == false) {
- from_node->scheduled = true;
- op_node = from_node;
- }
- else {
- break;
+ DepsNode *from = op_node->inlinks[0]->from;
+ if (from->get_class() == DEG_NODE_CLASS_OPERATION) {
+ OperationDepsNode *from_node = (OperationDepsNode *)from;
+ if (from_node->scheduled == false) {
+ from_node->scheduled = true;
+ op_node = from_node;
+ }
+ else {
+ break;
+ }
}
}
else {
foreach (DepsRelation *rel, op_node->inlinks) {
- OperationDepsNode *from_node = (OperationDepsNode *)rel->from;
- if (from_node->scheduled == false) {
- queue.push_front(from_node);
- from_node->scheduled = true;
+ DepsNode *from = rel->from;
+ if (from->get_class() == DEG_NODE_CLASS_OPERATION) {
+ OperationDepsNode *from_node = (OperationDepsNode *)from;
+ if (from_node->scheduled == false) {
+ queue.push_front(from_node);
+ from_node->scheduled = true;
+ }
}
}
break;