[Bf-blender-cvs] [fd51b05a02a] master: Functions: add clear method to vector array

Jacques Lucke noreply at git.blender.org
Fri Aug 20 11:51:26 CEST 2021


Commit: fd51b05a02abcbdc9b551a9f2bf72a4ea6bc1f1c
Author: Jacques Lucke
Date:   Fri Aug 20 11:42:31 2021 +0200
Branches: master
https://developer.blender.org/rBfd51b05a02abcbdc9b551a9f2bf72a4ea6bc1f1c

Functions: add clear method to vector array

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

M	source/blender/functions/FN_generic_vector_array.hh
M	source/blender/functions/intern/generic_vector_array.cc

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

diff --git a/source/blender/functions/FN_generic_vector_array.hh b/source/blender/functions/FN_generic_vector_array.hh
index eeba0c9dba2..179e85671f8 100644
--- a/source/blender/functions/FN_generic_vector_array.hh
+++ b/source/blender/functions/FN_generic_vector_array.hh
@@ -82,6 +82,8 @@ class GVectorArray : NonCopyable, NonMovable {
   void extend(IndexMask mask, const GVVectorArray &values);
   void extend(IndexMask mask, const GVectorArray &values);
 
+  void clear(IndexMask mask);
+
   GMutableSpan operator[](int64_t index);
   GSpan operator[](int64_t index) const;
 
diff --git a/source/blender/functions/intern/generic_vector_array.cc b/source/blender/functions/intern/generic_vector_array.cc
index 9556d24218e..ec95a283919 100644
--- a/source/blender/functions/intern/generic_vector_array.cc
+++ b/source/blender/functions/intern/generic_vector_array.cc
@@ -78,6 +78,15 @@ void GVectorArray::extend(IndexMask mask, const GVectorArray &values)
   this->extend(mask, virtual_values);
 }
 
+void GVectorArray::clear(IndexMask mask)
+{
+  for (const int64_t i : mask) {
+    Item &item = items_[i];
+    type_.destruct_n(item.start, item.length);
+    item.length = 0;
+  }
+}
+
 GMutableSpan GVectorArray::operator[](const int64_t index)
 {
   Item &item = items_[index];



More information about the Bf-blender-cvs mailing list