From f7d216c1b6061260ffba4fc63a2ff45f212d213f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 20 Dec 2018 17:50:36 +1100 Subject: Fix T59074: BMesh intersect hangs This is a degenerate intersection, exit early instead of hanging. --- source/blender/bmesh/intern/bmesh_polygon_edgenet.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender/bmesh/intern/bmesh_polygon_edgenet.c') diff --git a/source/blender/bmesh/intern/bmesh_polygon_edgenet.c b/source/blender/bmesh/intern/bmesh_polygon_edgenet.c index 4703dbf3bcd..53874e4ed96 100644 --- a/source/blender/bmesh/intern/bmesh_polygon_edgenet.c +++ b/source/blender/bmesh/intern/bmesh_polygon_edgenet.c @@ -1162,7 +1162,16 @@ static BMVert *bm_face_split_edgenet_partial_connect(BMesh *bm, BMVert *v_delimi BM_elem_flag_enable(v_split, VERT_NOT_IN_STACK); BLI_assert(v_delimit->e != NULL); + + /* Degenerate, avoid eternal loop, see: T59074. */ +#if 0 BLI_assert(v_split->e != NULL); +#else + if (UNLIKELY(v_split->e == NULL)) { + BM_vert_kill(bm, v_split); + v_split = NULL; + } +#endif } /* Restore flags */ -- cgit v1.2.3