[Bf-blender-cvs] [f16c8eec404] functions: optimize adding multiple new values to multimap

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


Commit: f16c8eec4044d740778c783a7614137b095138e9
Author: Jacques Lucke
Date:   Wed Jul 3 19:02:49 2019 +0200
Branches: functions
https://developer.blender.org/rBf16c8eec4044d740778c783a7614137b095138e9

optimize adding multiple new values to multimap

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

M	source/blender/blenlib/BLI_multimap.hpp

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

diff --git a/source/blender/blenlib/BLI_multimap.hpp b/source/blender/blenlib/BLI_multimap.hpp
index 8a656430cc3..33e651e70ef 100644
--- a/source/blender/blenlib/BLI_multimap.hpp
+++ b/source/blender/blenlib/BLI_multimap.hpp
@@ -88,9 +88,9 @@ template<typename K, typename V, uint N = 4> class SmallMultiMap {
   void add_multiple_new(const K &key, ArrayRef<V> values)
   {
     BLI_assert(!m_map.contains(key));
-    for (const V &value : values) {
-      this->add(key, value);
-    }
+    uint offset = m_elements.size();
+    m_elements.extend(values);
+    m_map.add_new(key, {key, offset, values.size(), values.size()});
   }
 
   ArrayRef<V> lookup(const K &key) const



More information about the Bf-blender-cvs mailing list