Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-04-24 05:03:40 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-04-24 05:18:29 +0300
commitd428cca124264cdb6e68d0676c74d80c7a303a7a (patch)
treef0dfb4f1f863ddc4e7566f27cbfa38022f918903 /source/blender/bmesh
parent9667f89e82cd969b008d8b5d1673bfbd689b22fa (diff)
Fix T63787: Knife intersect crashes
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/tools/bmesh_intersect.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/bmesh/tools/bmesh_intersect.c b/source/blender/bmesh/tools/bmesh_intersect.c
index ecd39ca714e..db07fd9842b 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.c
+++ b/source/blender/bmesh/tools/bmesh_intersect.c
@@ -1258,6 +1258,13 @@ bool BM_mesh_intersect(BMesh *bm,
continue;
}
+ /* It's possible the vertex to dissolve is an edge on an existing face
+ * that doesn't divide the face, therefor the edges are not wire
+ * and shouldn't be handled here, see: T63787. */
+ if (!BLI_gset_haskey(s.wire_edges, e_pair[0]) || !BLI_gset_haskey(s.wire_edges, e_pair[1])) {
+ continue;
+ }
+
v_a = BM_edge_other_vert(e_pair[0], v);
v_b = BM_edge_other_vert(e_pair[1], v);