diff --git a/source/blender/nodes/geometry/nodes/node_geo_material_selection.cc b/source/blender/nodes/geometry/nodes/node_geo_material_selection.cc index 29bd5ef10ba..b5a0be5791a 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_material_selection.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_material_selection.cc @@ -43,9 +43,8 @@ static VArray select_by_material(const Span materials, const VArray material_indices = *attributes.lookup_or_default( "material_index", domain, 0); - if (material_indices.is_single()) { - const int slot_i = material_indices.get_internal_single(); - return VArray::ForSingle(slots.contains(slot_i), domain_size); + if (const std::optional single = material_indices.get_if_single()) { + return VArray::ForSingle(slots.contains(*single), domain_size); } const VArraySpan material_indices_span(material_indices);