[Bf-blender-cvs] [b92b1a4fe56] functions: Use new LinearAllocatedVector in various places
Jacques Lucke
noreply at git.blender.org
Sun Feb 23 17:38:47 CET 2020
Commit: b92b1a4fe56338c7a66dda4f27426c10e070b11c
Author: Jacques Lucke
Date: Sun Feb 23 17:37:15 2020 +0100
Branches: functions
https://developer.blender.org/rBb92b1a4fe56338c7a66dda4f27426c10e070b11c
Use new LinearAllocatedVector in various places
===================================================================
M source/blender/blenkernel/BKE_virtual_node_tree.h
M source/blender/blenkernel/intern/virtual_node_tree.cc
M source/blender/functions/FN_multi_function_network.h
M source/blender/functions/FN_node_tree.h
M source/blender/functions/intern/multi_function_network.cc
M source/blender/functions/intern/node_tree.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_virtual_node_tree.h b/source/blender/blenkernel/BKE_virtual_node_tree.h
index d253e149cb8..86d96e569f6 100644
--- a/source/blender/blenkernel/BKE_virtual_node_tree.h
+++ b/source/blender/blenkernel/BKE_virtual_node_tree.h
@@ -8,6 +8,7 @@
#include "BLI_string_map.h"
#include "BLI_resource_collector.h"
#include "BLI_string_multi_map.h"
+#include "BLI_linear_allocated_vector.h"
#include "DNA_node_types.h"
@@ -17,6 +18,7 @@ namespace BKE {
using BLI::Array;
using BLI::ArrayRef;
+using BLI::LinearAllocatedVector;
using BLI::ResourceCollector;
using BLI::StringMap;
using BLI::StringMultiMap;
@@ -35,8 +37,8 @@ class VirtualNodeTree;
class VSocket : BLI::NonCopyable, BLI::NonMovable {
protected:
- Vector<VSocket *> m_linked_sockets;
- Vector<VSocket *> m_directly_linked_sockets;
+ LinearAllocatedVector<VSocket *> m_linked_sockets;
+ LinearAllocatedVector<VSocket *> m_directly_linked_sockets;
VNode *m_node;
bool m_is_input;
bNodeSocket *m_bsocket;
@@ -89,8 +91,8 @@ class VOutputSocket final : public VSocket {
class VNode : BLI::NonCopyable, BLI::NonMovable {
private:
VirtualNodeTree *m_vtree;
- Vector<VInputSocket *> m_inputs;
- Vector<VOutputSocket *> m_outputs;
+ LinearAllocatedVector<VInputSocket *> m_inputs;
+ LinearAllocatedVector<VOutputSocket *> m_outputs;
bNode *m_bnode;
uint m_id;
PointerRNA m_rna;
@@ -146,7 +148,8 @@ class VirtualNodeTree : BLI::NonCopyable, BLI::NonMovable {
bNodeTree *btree() const;
private:
- void find_targets_skipping_reroutes(VOutputSocket &vsocket, Vector<VSocket *> &r_targets);
+ void find_targets_skipping_reroutes(VOutputSocket &vsocket,
+ LinearAllocatedVector<VSocket *> &r_targets);
};
/* Virtual Node Tree inline functions
diff --git a/source/blender/blenkernel/intern/virtual_node_tree.cc b/source/blender/blenkernel/intern/virtual_node_tree.cc
index 7fb60c8510e..81698d0e524 100644
--- a/source/blender/blenkernel/intern/virtual_node_tree.cc
+++ b/source/blender/blenkernel/intern/virtual_node_tree.cc
@@ -35,7 +35,7 @@ VirtualNodeTree::VirtualNodeTree(bNodeTree *btree) : m_btree(btree)
VInputSocket &vsocket = *vtree.m_allocator.construct<VInputSocket>();
vsocket.m_node = &vnode;
- vsocket.m_index = vnode.m_inputs.append_and_get_index(&vsocket);
+ vsocket.m_index = vnode.m_inputs.append_and_get_index(&vsocket, m_allocator);
vsocket.m_is_input = true;
vsocket.m_bsocket = bsocket;
vsocket.m_id = vtree.m_sockets_by_id.append_and_get_index(&vsocket);
@@ -48,7 +48,7 @@ VirtualNodeTree::VirtualNodeTree(bNodeTree *btree) : m_btree(btree)
VOutputSocket &vsocket = *vtree.m_allocator.construct<VOutputSocket>();
vsocket.m_node = &vnode;
- vsocket.m_index = vnode.m_outputs.append_and_get_index(&vsocket);
+ vsocket.m_index = vnode.m_outputs.append_and_get_index(&vsocket, m_allocator);
vsocket.m_is_input = false;
vsocket.m_bsocket = bsocket;
vsocket.m_id = vtree.m_sockets_by_id.append_and_get_index(&vsocket);
@@ -68,15 +68,15 @@ VirtualNodeTree::VirtualNodeTree(bNodeTree *btree) : m_btree(btree)
*node_mapping.lookup(blink->tonode)
->m_inputs[BSocketList(blink->tonode->inputs).index_of(blink->tosock)];
- from_vsocket.m_directly_linked_sockets.append(&to_vsocket);
- to_vsocket.m_directly_linked_sockets.append(&from_vsocket);
+ from_vsocket.m_directly_linked_sockets.append(&to_vsocket, m_allocator);
+ to_vsocket.m_directly_linked_sockets.append(&from_vsocket, m_allocator);
}
for (VOutputSocket *socket : vtree.m_output_sockets) {
if (!is_reroute_node(socket->node())) {
vtree.find_targets_skipping_reroutes(*socket, socket->m_linked_sockets);
for (VSocket *target : socket->m_linked_sockets) {
- target->m_linked_sockets.append(socket);
+ target->m_linked_sockets.append(socket, m_allocator);
}
}
}
@@ -87,14 +87,14 @@ VirtualNodeTree::VirtualNodeTree(bNodeTree *btree) : m_btree(btree)
}
void VirtualNodeTree::find_targets_skipping_reroutes(VOutputSocket &vsocket,
- Vector<VSocket *> &r_targets)
+ LinearAllocatedVector<VSocket *> &r_targets)
{
for (VSocket *direct_target : vsocket.m_directly_linked_sockets) {
if (is_reroute_node(*direct_target->m_node)) {
this->find_targets_skipping_reroutes(*direct_target->m_node->m_outputs[0], r_targets);
}
else if (!r_targets.contains(direct_target)) {
- r_targets.append(direct_target);
+ r_targets.append(direct_target, m_allocator);
}
}
}
diff --git a/source/blender/functions/FN_multi_function_network.h b/source/blender/functions/FN_multi_function_network.h
index c6873cb9569..810fbb6340b 100644
--- a/source/blender/functions/FN_multi_function_network.h
+++ b/source/blender/functions/FN_multi_function_network.h
@@ -8,10 +8,12 @@
#include "BLI_set.h"
#include "BLI_vector_set.h"
#include "BLI_map.h"
+#include "BLI_linear_allocated_vector.h"
namespace FN {
using BLI::Array;
+using BLI::LinearAllocatedVector;
using BLI::Map;
using BLI::Optional;
using BLI::Set;
@@ -127,7 +129,7 @@ class MFBuilderInputSocket : public MFBuilderSocket {
class MFBuilderOutputSocket : public MFBuilderSocket {
private:
- Vector<MFBuilderInputSocket *> m_targets;
+ LinearAllocatedVector<MFBuilderInputSocket *> m_targets;
friend MFNetworkBuilder;
diff --git a/source/blender/functions/FN_node_tree.h b/source/blender/functions/FN_node_tree.h
index 8161c6df95a..563e664a060 100644
--- a/source/blender/functions/FN_node_tree.h
+++ b/source/blender/functions/FN_node_tree.h
@@ -5,6 +5,7 @@
#include "BLI_map.h"
#include "BLI_multi_map.h"
+#include "BLI_linear_allocated_vector.h"
namespace FN {
@@ -14,6 +15,7 @@ using BKE::VNode;
using BKE::VOutputSocket;
using BKE::VSocket;
using BLI::ArrayRef;
+using BLI::LinearAllocatedVector;
using BLI::Map;
using BLI::MultiMap;
using BLI::MutableArrayRef;
@@ -61,8 +63,8 @@ class FSocket : BLI::NonCopyable, BLI::NonMovable {
class FInputSocket : public FSocket {
private:
- Vector<FOutputSocket *> m_linked_sockets;
- Vector<FGroupInput *> m_linked_group_inputs;
+ LinearAllocatedVector<FOutputSocket *> m_linked_sockets;
+ LinearAllocatedVector<FGroupInput *> m_linked_group_inputs;
friend FunctionTree;
@@ -76,7 +78,7 @@ class FInputSocket : public FSocket {
class FOutputSocket : public FSocket {
private:
- Vector<FInputSocket *> m_linked_sockets;
+ LinearAllocatedVector<FInputSocket *> m_linked_sockets;
friend FunctionTree;
@@ -89,7 +91,7 @@ class FGroupInput : BLI::NonCopyable, BLI::NonMovable {
private:
const VInputSocket *m_vsocket;
FParentNode *m_parent;
- Vector<FInputSocket *> m_linked_sockets;
+ LinearAllocatedVector<FInputSocket *> m_linked_sockets;
uint m_id;
friend FunctionTree;
@@ -106,8 +108,8 @@ class FNode : BLI::NonCopyable, BLI::NonMovable {
const VNode *m_vnode;
FParentNode *m_parent;
- Vector<FInputSocket *> m_inputs;
- Vector<FOutputSocket *> m_outputs;
+ LinearAllocatedVector<FInputSocket *> m_inputs;
+ LinearAllocatedVector<FOutputSocket *> m_outputs;
/* Uniquely identifies this node in the inlined node tree. */
uint m_id;
diff --git a/source/blender/functions/intern/multi_function_network.cc b/source/blender/functions/intern/multi_function_network.cc
index 883ff4f70d2..77f478a24b8 100644
--- a/source/blender/functions/intern/multi_function_network.cc
+++ b/source/blender/functions/intern/multi_function_network.cc
@@ -173,7 +173,7 @@ void MFNetworkBuilder::add_link(MFBuilderOutputSocket &from, MFBuilderInputSocke
BLI_assert(to.origin() == nullptr);
BLI_assert(from.m_node->m_network == to.m_node->m_network);
BLI_assert(from.data_type() == to.data_type());
- from.m_targets.append(&to);
+ from.m_targets.append(&to, m_allocator);
to.m_origin = &from;
}
@@ -193,7 +193,7 @@ void MFNetworkBuilder::replace_origin(MFBuilderOutputSocket &old_origin,
for (MFBuilderInputSocket *target : old_origin.targets()) {
BLI_assert(target->m_origin != nullptr);
target->m_origin = &new_origin;
- new_origin.m_targets.append(target);
+ new_origin.m_targets.append(target, m_allocator);
}
old_origin.m_targets.clear();
}
diff --git a/source/blender/functions/intern/node_tree.cc b/source/blender/functions/intern/node_tree.cc
index d84acb5ad8a..75517784ea0 100644
--- a/source/blender/functions/intern/node_tree.cc
+++ b/source/blender/functions/intern/node_tree.cc
@@ -172,8 +172,8 @@ BLI_NOINLINE void FunctionTree::expand_group__group_inputs_for_unlinked_inputs(
group_input.m_vsocket = &input_socket->m_vsocket->as_input();
group_input.m_parent = group_node.m_parent;
- group_input.m_linked_sockets.append(input_socket);
- input_socket->m_linked_group_inputs.append(&group_input);
+ group_input.m_linked_sockets.append(input_socket, m_allocator);
+ input_socket->m_linked_group_inputs.append(&group_input, m_allocator);
}
}
}
@@ -205,13 +205,13 @@ BLI_NOINLINE void FunctionTree::expand_group__relink_inputs(const VirtualNodeTre
inside_connected->m_linked_sockets.remove_first_occurrence_and_reorder(&inside_interface);
for (FOutputSocket *outside_connected : outside_interface.m_linked_sockets) {
- inside_connected->m_linked_sockets.append(outside_connected);
- outside_connected->m_linked_sockets.append(inside_connected);
+ inside_connected->m_linked_sockets.append(outside_connected, m_allocator);
+ outside_connected->m_linked_sockets.append(inside_connected, m_allocator);
}
for (FGroupInput *outside_connected : outside_interface.m_linked_group_inputs) {
- inside_connected->m_linked_group_inputs.append(outside_connected);
- outside_connected->m_linked_sockets.append(inside_connected);
+ inside_connected->m_linked_group_inputs.append(outside_connected, m_allocator);
+ outside_connected->m_linked_sockets.append(inside_connected, m_allocator);
}
}
@@ -240,8 +240,8 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list