[Bf-blender-cvs] [011e88d03c3] functions: convert linked list to array for further processing

Jacques Lucke noreply at git.blender.org
Wed Jul 3 19:14:05 CEST 2019


Commit: 011e88d03c338a59f6e87a40e53d1c8244bb23e7
Author: Jacques Lucke
Date:   Wed Jul 3 15:57:56 2019 +0200
Branches: functions
https://developer.blender.org/rB011e88d03c338a59f6e87a40e53d1c8244bb23e7

convert linked list to array for further processing

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

M	source/blender/blenkernel/BKE_node_tree.hpp
M	source/blender/blenkernel/intern/node_tree.cpp

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

diff --git a/source/blender/blenkernel/BKE_node_tree.hpp b/source/blender/blenkernel/BKE_node_tree.hpp
index 820e316631b..9268cd957c1 100644
--- a/source/blender/blenkernel/BKE_node_tree.hpp
+++ b/source/blender/blenkernel/BKE_node_tree.hpp
@@ -45,6 +45,7 @@ class NodeTreeQuery {
   bNodeSocket *try_find_single_origin(bNodeSocket *bsocket) const;
 
   SmallVector<bNode *> m_nodes;
+  SmallVector<bNodeLink *> m_links;
   SmallMap<bNodeSocket *, bNode *> m_node_by_socket;
   MultiMap<bNodeSocket *, bNodeSocket *> m_direct_links;
   SmallVector<SingleOriginLink> m_single_origin_links;
diff --git a/source/blender/blenkernel/intern/node_tree.cpp b/source/blender/blenkernel/intern/node_tree.cpp
index 6d47f81263e..9ce2d7f6539 100644
--- a/source/blender/blenkernel/intern/node_tree.cpp
+++ b/source/blender/blenkernel/intern/node_tree.cpp
@@ -2,7 +2,8 @@
 
 namespace BKE {
 
-NodeTreeQuery::NodeTreeQuery(bNodeTree *btree) : m_nodes(btree->nodes, true)
+NodeTreeQuery::NodeTreeQuery(bNodeTree *btree)
+    : m_nodes(btree->nodes, true), m_links(btree->links, true)
 {
   for (bNode *bnode : m_nodes) {
     for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
@@ -13,12 +14,12 @@ NodeTreeQuery::NodeTreeQuery(bNodeTree *btree) : m_nodes(btree->nodes, true)
     }
   }
 
-  for (bNodeLink *blink : bLinkList(&btree->links)) {
+  for (bNodeLink *blink : m_links) {
     m_direct_links.add(blink->tosock, blink->fromsock);
     m_direct_links.add(blink->fromsock, blink->tosock);
   }
 
-  for (bNodeLink *blink : bLinkList(&btree->links)) {
+  for (bNodeLink *blink : m_links) {
     bNodeSocket *target = blink->tosock;
     bNode *target_node = blink->tonode;
     if (this->is_reroute(target_node)) {



More information about the Bf-blender-cvs mailing list