Fix T39151: Boolean modifier freeze

This re-applied patch from 25cbd13 which was lost at some point
since missing patchset in series.

This revision is to be back-ported to the final release.
This commit is contained in:
Sergey Sharybin 2014-03-13 15:40:55 +06:00
parent 217dbfeba5
commit 94379277dd
Notes: blender-bot 2023-02-14 11:00:20 +01:00
Referenced by issue #39151, Boolean modifier freeze
Referenced by issue #39151, Boolean modifier freeze
3 changed files with 19 additions and 0 deletions

View File

@ -719,6 +719,10 @@ namespace {
unassigned--;
}
}
if (!removed.size())
throw carve::exception("Failed to merge holes");
for (std::set<int>::iterator f = removed.begin(); f != removed.end(); ++f) {
for (unsigned i = 0; i < containing_faces.size(); ++i) {
containing_faces[i].erase(std::remove(containing_faces[i].begin(),

View File

@ -0,0 +1,14 @@
diff -r e82d852e4fb0 lib/intersect_face_division.cpp
--- a/lib/intersect_face_division.cpp Wed Jan 15 13:16:14 2014 +1100
+++ b/lib/intersect_face_division.cpp Thu Mar 13 15:39:26 2014 +0600
@@ -719,6 +719,10 @@
unassigned--;
}
}
+
+ if (!removed.size())
+ throw carve::exception("Failed to merge holes");
+
for (std::set<int>::iterator f = removed.begin(); f != removed.end(); ++f) {
for (unsigned i = 0; i < containing_faces.size(); ++i) {
containing_faces[i].erase(std::remove(containing_faces[i].begin(),

View File

@ -9,3 +9,4 @@ interpolator_reorder.patch
mesh_simplify_dissolve_edges.patch
memory_leak_fix.patch
mavc_fix.patch
face_hole_merge_workaround.patch