diff options
author | Hans Goudey <h.goudey@me.com> | 2022-03-31 04:54:11 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-03-31 04:54:11 +0300 |
commit | 762d3a48e860d3425fc45bb0a7d4b86fb8cc836b (patch) | |
tree | c6fdbaeae421ce7a25f8ca4dd33e31075e650f4e /source/blender/nodes | |
parent | 49858bf52641831f22e1d5a85b10b8074a449a30 (diff) |
Cleanup: Avoid storing pointers for attribute search callback
It's better to use some local/stable identifiier to avoid relying on
the data not being freed in between creating the search menu and
the exec function. This is similar to c473b2ce8bdbf8fa.
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/NOD_geometry_nodes_eval_log.hh | 2 | ||||
-rw-r--r-- | source/blender/nodes/intern/geometry_nodes_eval_log.cc | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/nodes/NOD_geometry_nodes_eval_log.hh b/source/blender/nodes/NOD_geometry_nodes_eval_log.hh index 319fcdeebb7..19103b82fcf 100644 --- a/source/blender/nodes/NOD_geometry_nodes_eval_log.hh +++ b/source/blender/nodes/NOD_geometry_nodes_eval_log.hh @@ -353,6 +353,8 @@ class ModifierLog { static const TreeLog *find_tree_by_node_editor_context(const SpaceNode &snode); static const NodeLog *find_node_by_node_editor_context(const SpaceNode &snode, const bNode &node); + static const NodeLog *find_node_by_node_editor_context(const SpaceNode &snode, + const StringRef node_name); static const SocketLog *find_socket_by_node_editor_context(const SpaceNode &snode, const bNode &node, const bNodeSocket &socket); diff --git a/source/blender/nodes/intern/geometry_nodes_eval_log.cc b/source/blender/nodes/intern/geometry_nodes_eval_log.cc index 5c8f4c52f75..13f38c3352e 100644 --- a/source/blender/nodes/intern/geometry_nodes_eval_log.cc +++ b/source/blender/nodes/intern/geometry_nodes_eval_log.cc @@ -337,6 +337,16 @@ const NodeLog *ModifierLog::find_node_by_node_editor_context(const SpaceNode &sn return tree_log->lookup_node_log(node); } +const NodeLog *ModifierLog::find_node_by_node_editor_context(const SpaceNode &snode, + const StringRef node_name) +{ + const TreeLog *tree_log = ModifierLog::find_tree_by_node_editor_context(snode); + if (tree_log == nullptr) { + return nullptr; + } + return tree_log->lookup_node_log(node_name); +} + const SocketLog *ModifierLog::find_socket_by_node_editor_context(const SpaceNode &snode, const bNode &node, const bNodeSocket &socket) |