diff --git a/source/blender/functions/intern/multi_function_procedure_executor.cc b/source/blender/functions/intern/multi_function_procedure_executor.cc index e0f26ee427c..dd781dbdb27 100644 --- a/source/blender/functions/intern/multi_function_procedure_executor.cc +++ b/source/blender/functions/intern/multi_function_procedure_executor.cc @@ -782,7 +782,8 @@ class VariableState : NonCopyable, NonMovable { BLI_assert(value_typed->is_initialized); const bool condition = *static_cast(value_typed->data); Vector &indices = r_indices[condition]; - mask.foreach_index([&](const int64_t i) { indices.append(i); }); + indices.reserve(indices.size() + mask.size()); + mask.foreach_index_optimized([&](const int64_t i) { indices.append(i); }); break; } case ValueType::GVVectorArray: