[Bf-blender-cvs] [8628f329e8a] functions: cleanup rna access

Jacques Lucke noreply at git.blender.org
Thu Jul 4 16:45:57 CEST 2019


Commit: 8628f329e8a290b5976b745cf0689293f8bd8b03
Author: Jacques Lucke
Date:   Thu Jul 4 11:34:49 2019 +0200
Branches: functions
https://developer.blender.org/rB8628f329e8a290b5976b745cf0689293f8bd8b03

cleanup rna access

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

M	source/blender/blenkernel/BKE_node_tree.hpp
M	source/blender/simulations/bparticles/c_wrapper.cpp

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

diff --git a/source/blender/blenkernel/BKE_node_tree.hpp b/source/blender/blenkernel/BKE_node_tree.hpp
index 0b7cc629d3e..f6f8373f37b 100644
--- a/source/blender/blenkernel/BKE_node_tree.hpp
+++ b/source/blender/blenkernel/BKE_node_tree.hpp
@@ -9,6 +9,8 @@
 #include "BLI_listbase_wrapper.hpp"
 #include "BLI_multimap.hpp"
 
+#include "RNA_access.h"
+
 namespace BKE {
 
 using BLI::ArrayRef;
@@ -56,6 +58,13 @@ class IndexedNodeTree {
     return &m_btree->id;
   }
 
+  PointerRNA get_rna(bNode *bnode) const
+  {
+    PointerRNA rna;
+    RNA_pointer_create(this->btree_id(), &RNA_Node, bnode, &rna);
+    return rna;
+  }
+
   ArrayRef<SingleOriginLink> single_origin_links() const;
   ArrayRef<bNode *> nodes_with_idname(StringRef idname) const;
   ArrayRef<SocketWithNode> linked(bNodeSocket *bsocket) const;
diff --git a/source/blender/simulations/bparticles/c_wrapper.cpp b/source/blender/simulations/bparticles/c_wrapper.cpp
index 390b680791a..fb2fabc90f1 100644
--- a/source/blender/simulations/bparticles/c_wrapper.cpp
+++ b/source/blender/simulations/bparticles/c_wrapper.cpp
@@ -282,8 +282,8 @@ static void INSERT_EMITTER_mesh_surface(bNode *emitter_node,
 
     bNode *type_node = linked.node;
 
-    PointerRNA rna;
-    RNA_pointer_create(bparticles_tree.btree_id(), &RNA_Node, emitter_node, &rna);
+    PointerRNA rna = bparticles_tree.base().get_rna(emitter_node);
+
     Object *object = (Object *)RNA_pointer_get(&rna, "object").id.data;
     if (object == nullptr) {
       continue;
@@ -309,9 +309,9 @@ static void INSERT_EMITTER_point(bNode *emitter_node,
 
     bNode *type_node = linked.node;
 
+    PointerRNA rna = bparticles_tree.base().get_rna(emitter_node);
+
     float3 position;
-    PointerRNA rna;
-    RNA_pointer_create(bparticles_tree.btree_id(), &RNA_Node, emitter_node, &rna);
     RNA_float_get_array(&rna, "position", position);
 
     Emitter *emitter = EMITTER_point(type_node->name, position);



More information about the Bf-blender-cvs mailing list