diff --git a/source/blender/geometry/intern/mesh_triangulate.cc b/source/blender/geometry/intern/mesh_triangulate.cc index 2c977e416f3..5ce02e25a69 100644 --- a/source/blender/geometry/intern/mesh_triangulate.cc +++ b/source/blender/geometry/intern/mesh_triangulate.cc @@ -554,12 +554,13 @@ static IndexMask calc_unselected_faces(const Mesh &mesh, memory, [&](const IndexMaskSegment universe_segment, IndexRangesBuilder &builder) { if (unique_sorted_indices::non_empty_is_range(universe_segment.base_span())) { - const IndexRange segment_range(universe_segment[0], universe_segment.size()); + const IndexRange universe_as_range = unique_sorted_indices::non_empty_as_range( + universe_segment.base_span()); + const IndexRange segment_range = universe_as_range.shift(universe_segment.offset()); const OffsetIndices segment_faces = src_faces.slice(segment_range); if (segment_faces.total_size() == segment_faces.size() * 3) { /* All faces in segment are triangles. */ - builder.add_range(universe_segment.base_span().first(), - universe_segment.base_span().last()); + builder.add_range(universe_as_range.start(), universe_as_range.one_after_last()); return universe_segment.offset(); } }