diff options
author | Jacques Lucke <jacques@blender.org> | 2021-09-14 17:34:31 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-09-14 17:34:31 +0300 |
commit | edaeec3e720cacf789d0b3c438df6c2944adbd8b (patch) | |
tree | 083aa039b1bb515f8dfae28e6cc4b9416c5ed600 /source/blender/nodes/intern/node_socket.cc | |
parent | dee0b56b9216de8f37589b15be2d21cc1b946773 (diff) |
Nodes: cache node declaration on node
Previously, it was necessary to rebuild the node declaration
every time it was used. Now it is cached per node for easy
and fast access.
For more details on what this is, look at the comment in
`DNA_node_types.h`.
Differential Revision: https://developer.blender.org/D12471
Diffstat (limited to 'source/blender/nodes/intern/node_socket.cc')
-rw-r--r-- | source/blender/nodes/intern/node_socket.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/nodes/intern/node_socket.cc b/source/blender/nodes/intern/node_socket.cc index 8efd6c55459..31260f95242 100644 --- a/source/blender/nodes/intern/node_socket.cc +++ b/source/blender/nodes/intern/node_socket.cc @@ -269,11 +269,9 @@ void node_verify_sockets(bNodeTree *ntree, bNode *node, bool do_id_user) return; } if (ntype->declare != nullptr) { - blender::nodes::NodeDeclaration node_decl; - blender::nodes::NodeDeclarationBuilder builder{node_decl}; - ntype->declare(builder); - if (!node_decl.matches(*node)) { - refresh_node(*ntree, *node, node_decl, do_id_user); + nodeDeclarationEnsure(ntree, node); + if (!node->declaration->matches(*node)) { + refresh_node(*ntree, *node, *node->declaration, do_id_user); } return; } |