Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-09-27 00:10:26 +0300
committerJacques Lucke <jacques@blender.org>2021-09-27 00:28:14 +0300
commit88a2b054daba747ab2904c19f73c2e2a1bb9617a (patch)
tree5a3cce4352f7b55c05310bb3a20ae8b9be13ca5d /source/blender
parent93b36fad684f62119a7a27c5ba37902643574ae5 (diff)
Fix T91732: crash in Set Position node on empty mesh
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/functions/intern/field.cc2
-rw-r--r--source/blender/nodes/geometry/nodes/node_geo_set_position.cc3
2 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/functions/intern/field.cc b/source/blender/functions/intern/field.cc
index 4f7ea8ec0ef..88e4e5ccd71 100644
--- a/source/blender/functions/intern/field.cc
+++ b/source/blender/functions/intern/field.cc
@@ -450,7 +450,7 @@ Vector<const GVArray *> evaluate_fields(ResourceScope &scope,
type, array_size, buffer);
}
- procedure_executor.call(IndexRange(1), mf_params, mf_context);
+ procedure_executor.call(IndexRange(mask_size), mf_params, mf_context);
}
/* Copy data to supplied destination arrays if necessary. In some cases the evaluation above has
diff --git a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
index be923fdccb0..8caf961fc04 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_set_position.cc
@@ -34,6 +34,9 @@ static void set_position_in_component(GeometryComponent &component,
{
GeometryComponentFieldContext field_context{component, ATTR_DOMAIN_POINT};
const int domain_size = component.attribute_domain_size(ATTR_DOMAIN_POINT);
+ if (domain_size == 0) {
+ return;
+ }
fn::FieldEvaluator selection_evaluator{field_context, domain_size};
selection_evaluator.add(selection_field);