[Bf-blender-cvs] [4a0b22d4490] functions-experimental-refactor: cleanup

Jacques Lucke noreply at git.blender.org
Sat Nov 2 21:32:55 CET 2019


Commit: 4a0b22d449004fa71b46fc9ab354f4a066b7ec9a
Author: Jacques Lucke
Date:   Sat Nov 2 19:12:46 2019 +0100
Branches: functions-experimental-refactor
https://developer.blender.org/rB4a0b22d449004fa71b46fc9ab354f4a066b7ec9a

cleanup

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

M	source/blender/functions2/intern/vtree_multi_function_network/builder.h
M	source/blender/functions2/intern/vtree_multi_function_network/mappings_nodes.cc

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

diff --git a/source/blender/functions2/intern/vtree_multi_function_network/builder.h b/source/blender/functions2/intern/vtree_multi_function_network/builder.h
index d51d3a597c0..3c1c6cb21c1 100644
--- a/source/blender/functions2/intern/vtree_multi_function_network/builder.h
+++ b/source/blender/functions2/intern/vtree_multi_function_network/builder.h
@@ -209,6 +209,14 @@ class VTreeMFNetworkBuilder : BLI::NonCopyable, BLI::NonMovable {
     return *m_vtree_mappings.cpp_type_by_type_name.lookup(name);
   }
 
+  const CPPType &cpp_type_from_property(const VNode &vnode, StringRefNull prop_name) const
+  {
+    char *type_name = RNA_string_get_alloc(vnode.rna(), prop_name.data(), nullptr, 0);
+    const CPPType &type = this->cpp_type_by_name(type_name);
+    MEM_freeN(type_name);
+    return type;
+  }
+
   std::unique_ptr<VTreeMFNetwork> build()
   {
     // m_builder->to_dot__clipboard();
diff --git a/source/blender/functions2/intern/vtree_multi_function_network/mappings_nodes.cc b/source/blender/functions2/intern/vtree_multi_function_network/mappings_nodes.cc
index aa0ed527907..2690c3581c3 100644
--- a/source/blender/functions2/intern/vtree_multi_function_network/mappings_nodes.cc
+++ b/source/blender/functions2/intern/vtree_multi_function_network/mappings_nodes.cc
@@ -86,10 +86,7 @@ static void INSERT_list_length(VTreeMFNetworkBuilder &builder,
                                OwnedResources &resources,
                                const VNode &vnode)
 {
-  char *type_name = RNA_string_get_alloc(vnode.rna(), "active_type", nullptr, 0);
-  const CPPType &type = builder.cpp_type_by_name(type_name);
-  MEM_freeN(type_name);
-
+  const CPPType &type = builder.cpp_type_from_property(vnode, "active_type");
   const MultiFunction &fn = allocate_resource<FN::MF_ListLength>(
       "list length function", resources, type);
   builder.add_function(fn, {0}, {1}, vnode);
@@ -99,10 +96,7 @@ static void INSERT_get_list_element(VTreeMFNetworkBuilder &builder,
                                     OwnedResources &resources,
                                     const VNode &vnode)
 {
-  char *type_name = RNA_string_get_alloc(vnode.rna(), "active_type", nullptr, 0);
-  const CPPType &type = builder.cpp_type_by_name(type_name);
-  MEM_freeN(type_name);
-
+  const CPPType &type = builder.cpp_type_from_property(vnode, "active_type");
   const MultiFunction &fn = allocate_resource<FN::MF_GetListElement>(
       "get list element function", resources, type);
   builder.add_function(fn, {0, 1, 2}, {3}, vnode);
@@ -151,10 +145,7 @@ static void INSERT_pack_list(VTreeMFNetworkBuilder &builder,
                              OwnedResources &resources,
                              const VNode &vnode)
 {
-  char *type_name = RNA_string_get_alloc(vnode.rna(), "active_type", nullptr, 0);
-  const CPPType &type = builder.cpp_type_by_name(type_name);
-  MEM_freeN(type_name);
-
+  const CPPType &type = builder.cpp_type_from_property(vnode, "active_type");
   MFBuilderOutputSocket &packed_list_socket = build_pack_list_node(
       builder, resources, vnode, type, "variadic", 0);
   builder.map_sockets(vnode.output(0), packed_list_socket);



More information about the Bf-blender-cvs mailing list