[Bf-blender-cvs] [090ae9aefe0] functions: avoid unnecessary type casting
Jacques Lucke
noreply at git.blender.org
Sat Jan 18 20:17:27 CET 2020
Commit: 090ae9aefe0169956e81ec670f8fc0375c6728ea
Author: Jacques Lucke
Date: Sat Jan 11 14:09:09 2020 +0100
Branches: functions
https://developer.blender.org/rB090ae9aefe0169956e81ec670f8fc0375c6728ea
avoid unnecessary type casting
===================================================================
M source/blender/blenlib/BLI_array_ref.h
M source/blender/functions/intern/multi_function_network.cc
M source/blender/functions/intern/multi_function_network_optimization.cc
===================================================================
diff --git a/source/blender/blenlib/BLI_array_ref.h b/source/blender/blenlib/BLI_array_ref.h
index 265e75a2bf9..9944c3231d2 100644
--- a/source/blender/blenlib/BLI_array_ref.h
+++ b/source/blender/blenlib/BLI_array_ref.h
@@ -79,13 +79,12 @@ template<typename T> class ArrayRef {
}
/**
- * Construct ArrayRef<const T *> from ArrayRef<T *>.
+ * ArrayRef<T *> -> ArrayRef<const T *>
+ * ArrayRef<Derived *> -> ArrayRef<Base *>
*/
- template<typename U>
- ArrayRef(
- ArrayRef<U *> array,
- typename std::enable_if<std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
- : ArrayRef(array.begin(), array.size())
+ template<typename U,
+ typename std::enable_if<std::is_convertible<U *, T>::value>::type * = nullptr>
+ ArrayRef(ArrayRef<U *> array) : ArrayRef((T *)array.begin(), array.size())
{
}
diff --git a/source/blender/functions/intern/multi_function_network.cc b/source/blender/functions/intern/multi_function_network.cc
index 21de6073fe7..f19062ed938 100644
--- a/source/blender/functions/intern/multi_function_network.cc
+++ b/source/blender/functions/intern/multi_function_network.cc
@@ -188,8 +188,8 @@ std::string MFNetworkBuilder::to_dot(const Set<MFBuilderNode *> &marked_nodes)
Map<MFBuilderNode *, NodeWithSocketsWrapper> dot_nodes;
Vector<MFBuilderNode *> all_nodes;
- all_nodes.extend(m_function_nodes.as_ref().cast<MFBuilderNode *>());
- all_nodes.extend(m_dummy_nodes.as_ref().cast<MFBuilderNode *>());
+ all_nodes.extend(m_function_nodes.as_ref());
+ all_nodes.extend(m_dummy_nodes.as_ref());
for (MFBuilderNode *node : all_nodes) {
auto &dot_node = digraph.new_node("");
diff --git a/source/blender/functions/intern/multi_function_network_optimization.cc b/source/blender/functions/intern/multi_function_network_optimization.cc
index 13334b82d4f..11528a78a3e 100644
--- a/source/blender/functions/intern/multi_function_network_optimization.cc
+++ b/source/blender/functions/intern/multi_function_network_optimization.cc
@@ -14,8 +14,8 @@ void optimize_network__constant_folding(MFNetworkBuilder &network_builder,
Array<bool> function_node_is_constant(network_builder.function_nodes().size(), true);
Stack<MFBuilderNode *> nodes_to_check;
- nodes_to_check.push_multiple(network_builder.dummy_nodes().cast<MFBuilderNode *>());
- nodes_to_check.push_multiple(network_builder.function_nodes().cast<MFBuilderNode *>());
+ nodes_to_check.push_multiple(network_builder.dummy_nodes());
+ nodes_to_check.push_multiple(network_builder.function_nodes());
while (!nodes_to_check.is_empty()) {
MFBuilderNode ¤t_node = *nodes_to_check.pop();
More information about the Bf-blender-cvs
mailing list