[Bf-blender-cvs] [c2387281052] master: Fix: Curves cyclic access function duplicates attribute

Hans Goudey noreply at git.blender.org
Tue Mar 8 01:58:22 CET 2022


Commit: c238728105272b0f11ff5b03a701cc180bf68bb8
Author: Hans Goudey
Date:   Mon Mar 7 18:58:04 2022 -0600
Branches: master
https://developer.blender.org/rBc238728105272b0f11ff5b03a701cc180bf68bb8

Fix: Curves cyclic access function duplicates attribute

This was an oversight in 6594e802ab94ff11. First it must check if the
attribute exists before adding it.

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

M	source/blender/blenkernel/intern/curves_geometry.cc

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

diff --git a/source/blender/blenkernel/intern/curves_geometry.cc b/source/blender/blenkernel/intern/curves_geometry.cc
index 3eea579230a..2a22b2eb0f3 100644
--- a/source/blender/blenkernel/intern/curves_geometry.cc
+++ b/source/blender/blenkernel/intern/curves_geometry.cc
@@ -181,7 +181,12 @@ VArray<bool> CurvesGeometry::cyclic() const
 
 MutableSpan<bool> CurvesGeometry::cyclic()
 {
-  bool *data = (bool *)CustomData_add_layer_named(
+  bool *data = (bool *)CustomData_duplicate_referenced_layer_named(
+      &this->curve_data, CD_PROP_BOOL, ATTR_CYCLIC.c_str(), this->curve_size);
+  if (data != nullptr) {
+    return {data, this->curve_size};
+  }
+  data = (bool *)CustomData_add_layer_named(
       &this->curve_data, CD_PROP_BOOL, CD_CALLOC, nullptr, this->curve_size, ATTR_CYCLIC.c_str());
   return {data, this->curve_size};
 }



More information about the Bf-blender-cvs mailing list