diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 1ad4306ff..378c148ef 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -2231,6 +2231,7 @@ static void triangulate_slice( [&v](const std::pair &l) { return l.first.x() < v.x() || (is_equal_for_sort(l.first.x(), v.x()) && l.first.y() < v.y()); }); + auto back_it = it; int idx = -1; bool exist = false; for (auto iter = section_vertices_map.begin(); iter != section_vertices_map.end(); iter++) { @@ -2252,6 +2253,7 @@ static void triangulate_slice( } // go on finding if (!exist) { + it = back_it; for (; it != map_vertex_to_index.begin(); it--) { if (is_equal(it->first.x(), v.x()) && is_equal(it->first.y(), v.y())) { idx = it->second;