[Bf-blender-cvs] [bd92ed7e112] functions: optimize single value case

Jacques Lucke noreply at git.blender.org
Wed Dec 11 14:26:42 CET 2019


Commit: bd92ed7e11284bd03899a7cbe83b4735f9271eef
Author: Jacques Lucke
Date:   Wed Dec 11 13:58:08 2019 +0100
Branches: functions
https://developer.blender.org/rBbd92ed7e11284bd03899a7cbe83b4735f9271eef

optimize single value case

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

M	source/blender/functions/intern/multi_functions/mixed.cc

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

diff --git a/source/blender/functions/intern/multi_functions/mixed.cc b/source/blender/functions/intern/multi_functions/mixed.cc
index a9b228cd6b5..99532749e6c 100644
--- a/source/blender/functions/intern/multi_functions/mixed.cc
+++ b/source/blender/functions/intern/multi_functions/mixed.cc
@@ -486,6 +486,15 @@ void group_indices_by_same_value(ArrayRef<uint> indices,
                                  const FuncT &func,
                                  EqualFuncT equal = std::equal_to<T>())
 {
+  if (indices.size() == 0) {
+    return;
+  }
+  if (values.is_single_element()) {
+    const T &value = values[indices[0]];
+    func(value, indices);
+    return;
+  }
+
   Vector<T> seen_values;
 
   for (uint i : indices.index_iterator()) {



More information about the Bf-blender-cvs mailing list