[Bf-blender-cvs] [a88e504fbd1] temp-derived-node-tree-refactor: cleanup

Jacques Lucke noreply at git.blender.org
Wed Mar 3 09:57:02 CET 2021


Commit: a88e504fbd1d3720ddf4f4bc44ecc585d4eb3c0b
Author: Jacques Lucke
Date:   Wed Mar 3 08:23:41 2021 +0100
Branches: temp-derived-node-tree-refactor
https://developer.blender.org/rBa88e504fbd1d3720ddf4f4bc44ecc585d4eb3c0b

cleanup

===================================================================

M	source/blender/nodes/NOD_node_tree_ref.hh
M	source/blender/nodes/intern/derived_node_tree.cc
M	source/blender/nodes/intern/node_tree_ref.cc

===================================================================

diff --git a/source/blender/nodes/NOD_node_tree_ref.hh b/source/blender/nodes/NOD_node_tree_ref.hh
index 5bc09993a51..94a2daf9ffa 100644
--- a/source/blender/nodes/NOD_node_tree_ref.hh
+++ b/source/blender/nodes/NOD_node_tree_ref.hh
@@ -219,6 +219,8 @@ class NodeTreeRef : NonCopyable, NonMovable {
 
 using NodeTreeRefMap = Map<bNodeTree *, std::unique_ptr<const NodeTreeRef>>;
 
+const NodeTreeRef &get_tree_ref_from_map(NodeTreeRefMap &node_tree_refs, bNodeTree &btree);
+
 /* --------------------------------------------------------------------
  * SocketRef inline methods.
  */
diff --git a/source/blender/nodes/intern/derived_node_tree.cc b/source/blender/nodes/intern/derived_node_tree.cc
index f5a0e14f18b..5c04dbf1f41 100644
--- a/source/blender/nodes/intern/derived_node_tree.cc
+++ b/source/blender/nodes/intern/derived_node_tree.cc
@@ -22,17 +22,11 @@
 
 namespace blender::nodes {
 
-static const NodeTreeRef &get_tree_ref(NodeTreeRefMap &node_tree_refs, bNodeTree *btree)
-{
-  return *node_tree_refs.lookup_or_add_cb(btree,
-                                          [&]() { return std::make_unique<NodeTreeRef>(btree); });
-}
-
 DerivedNodeTree::DerivedNodeTree(bNodeTree *btree, NodeTreeRefMap &node_tree_refs) : btree_(btree)
 {
   BLI_assert(btree != nullptr);
 
-  const NodeTreeRef &main_tree_ref = get_tree_ref(node_tree_refs, btree);
+  const NodeTreeRef &main_tree_ref = get_tree_ref_from_map(node_tree_refs, *btree);
   used_node_tree_refs_.add_new(&main_tree_ref);
 
   Vector<DNode *> all_nodes;
@@ -144,7 +138,7 @@ BLI_NOINLINE void DerivedNodeTree::expand_group_node(DNode &group_node,
     return;
   }
 
-  const NodeTreeRef &group_ref = get_tree_ref(node_tree_refs, btree);
+  const NodeTreeRef &group_ref = get_tree_ref_from_map(node_tree_refs, *btree);
   used_node_tree_refs_.add(&group_ref);
 
   DParentNode &parent = *allocator_.construct<DParentNode>();
diff --git a/source/blender/nodes/intern/node_tree_ref.cc b/source/blender/nodes/intern/node_tree_ref.cc
index e174f096ff7..33b722967fd 100644
--- a/source/blender/nodes/intern/node_tree_ref.cc
+++ b/source/blender/nodes/intern/node_tree_ref.cc
@@ -229,4 +229,10 @@ std::string NodeTreeRef::to_dot() const
   return digraph.to_dot_string();
 }
 
+const NodeTreeRef &get_tree_ref_from_map(NodeTreeRefMap &node_tree_refs, bNodeTree &btree)
+{
+  return *node_tree_refs.lookup_or_add_cb(&btree,
+                                          [&]() { return std::make_unique<NodeTreeRef>(&btree); });
+}
+
 }  // namespace blender::nodes



More information about the Bf-blender-cvs mailing list