[Bf-blender-cvs] [77df9d788a2] master: Fix T99239: weird behavior in Field on Domain node

Iliay Katueshenock noreply at git.blender.org
Thu Jul 14 10:04:58 CEST 2022


Commit: 77df9d788a2bb9d7173f10edf3631dc26ccce8ed
Author: Iliay Katueshenock
Date:   Thu Jul 14 10:04:35 2022 +0200
Branches: master
https://developer.blender.org/rB77df9d788a2bb9d7173f10edf3631dc26ccce8ed

Fix T99239: weird behavior in Field on Domain node

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

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

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

diff --git a/source/blender/nodes/geometry/nodes/node_geo_field_on_domain.cc b/source/blender/nodes/geometry/nodes/node_geo_field_on_domain.cc
index 5939ed5334d..59e243db4a2 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_field_on_domain.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_field_on_domain.cc
@@ -85,12 +85,13 @@ class FieldOnDomain final : public GeometryFieldInput {
                                  IndexMask /* mask */) const final
   {
     const GeometryComponentFieldContext context{component, src_domain_};
-    FieldEvaluator value_evaluator{context, component.attribute_domain_size(src_domain_)};
-    value_evaluator.add(src_field_);
+    const int64_t src_domain_size = component.attribute_domain_size(src_domain_);
+    GArray values(src_field_.cpp_type(), src_domain_size);
+    FieldEvaluator value_evaluator{context, src_domain_size};
+    value_evaluator.add_with_destination(src_field_, values.as_mutable_span());
     value_evaluator.evaluate();
-    const GVArray &values = value_evaluator.get_evaluated(0);
-
-    return component.attributes()->adapt_domain(values, src_domain_, domain);
+    return component.attributes()->adapt_domain(
+        GVArray::ForGArray(std::move(values)), src_domain_, domain);
   }
 };



More information about the Bf-blender-cvs mailing list