From 2dde3708d122c608b2d96c6e4b96c6e9d4e3980a Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 1 Aug 2023 20:36:01 +0800 Subject: [PATCH] FIX: add protection to fix crash when mesh boolean when the split has no effect we should return directly Change-Id: I81510c3edea96e101abfedf77023264e06d7d35c --- src/libslic3r/MeshBoolean.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index 5e8a83fe5..61e5cef3e 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -670,6 +670,12 @@ void do_boolean(McutMesh &srcMesh, const McutMesh &cutMesh, const std::string &b indexed_triangle_set all_its; TriangleMesh tri_src = mcut_to_triangle_mesh(srcMesh); std::vector src_parts = its_split(tri_src.its); + if (src_parts.size() == 1) + { + //can not split, return error directly + BOOST_LOG_TRIVIAL(error) << boost::format("bool operation %1% failed, also can not split")%boolean_opts; + return; + } for (size_t i = 0; i < src_parts.size(); i++) { auto part = triangle_mesh_to_mcut(src_parts[i]);