[Bf-blender-cvs] [3e1fd268280] master: Fix: Assert for unused field evaluator in resample curve node

Hans Goudey noreply at git.blender.org
Fri Oct 22 23:39:46 CEST 2021


Commit: 3e1fd2682807c31b62168737c953a6b4ea33ce77
Author: Hans Goudey
Date:   Fri Oct 22 16:39:39 2021 -0500
Branches: master
https://developer.blender.org/rB3e1fd2682807c31b62168737c953a6b4ea33ce77

Fix: Assert for unused field evaluator in resample curve node

Declare it at a lower scope so it doesn't go unused in evaluated mode.

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

M	source/blender/nodes/geometry/nodes/node_geo_curve_resample.cc

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

diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_resample.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_resample.cc
index 3db18992c93..2617b2f6646 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_resample.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_resample.cc
@@ -171,8 +171,6 @@ static std::unique_ptr<CurveEval> resample_curve(const CurveComponent *component
   GeometryComponentFieldContext field_context{*component, ATTR_DOMAIN_CURVE};
   const int domain_size = component->attribute_domain_size(ATTR_DOMAIN_CURVE);
 
-  fn::FieldEvaluator evaluator{field_context, domain_size};
-
   Span<SplinePtr> input_splines = input_curve->splines();
 
   std::unique_ptr<CurveEval> output_curve = std::make_unique<CurveEval>();
@@ -180,6 +178,7 @@ static std::unique_ptr<CurveEval> resample_curve(const CurveComponent *component
   MutableSpan<SplinePtr> output_splines = output_curve->splines();
 
   if (mode_param.mode == GEO_NODE_CURVE_RESAMPLE_COUNT) {
+    fn::FieldEvaluator evaluator{field_context, domain_size};
     evaluator.add(*mode_param.count);
     evaluator.evaluate();
     const VArray<int> &cuts = evaluator.get_evaluated<int>(0);
@@ -192,6 +191,7 @@ static std::unique_ptr<CurveEval> resample_curve(const CurveComponent *component
     });
   }
   else if (mode_param.mode == GEO_NODE_CURVE_RESAMPLE_LENGTH) {
+    fn::FieldEvaluator evaluator{field_context, domain_size};
     evaluator.add(*mode_param.length);
     evaluator.evaluate();
     const VArray<float> &lengths = evaluator.get_evaluated<float>(0);



More information about the Bf-blender-cvs mailing list