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>2017-11-24 17:37:51 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-11-24 17:38:20 +0300
commit5f7981243e70772cb4ef3b14c55c95d4a3e67b4e (patch)
tree88fc0e5374aa4f68e6d8dc0877e5321c701f8b1d /source/blender/depsgraph
parenta8b97b2e418fbc9afed780275d4318c0cb9c9c8c (diff)
Depsgraph: Allow finding operations after construction is done
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r--source/blender/depsgraph/intern/nodes/deg_node_component.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/nodes/deg_node_component.cc b/source/blender/depsgraph/intern/nodes/deg_node_component.cc
index 7a39b1b09e5..937b01ce206 100644
--- a/source/blender/depsgraph/intern/nodes/deg_node_component.cc
+++ b/source/blender/depsgraph/intern/nodes/deg_node_component.cc
@@ -165,8 +165,21 @@ string ComponentDepsNode::identifier() const
OperationDepsNode *ComponentDepsNode::find_operation(OperationIDKey key) const
{
- OperationDepsNode *node =
- (OperationDepsNode *)BLI_ghash_lookup(operations_map, &key);
+ OperationDepsNode *node;
+ if (operations_map != NULL) {
+ node = (OperationDepsNode *)BLI_ghash_lookup(operations_map, &key);
+ }
+ else {
+ BLI_assert(key.name_tag == -1);
+ foreach (OperationDepsNode *op_node, operations) {
+ if (op_node->opcode == key.opcode &&
+ STREQ(op_node->name, key.name))
+ {
+ node = op_node;
+ break;
+ }
+ }
+ }
return node;
}