From 2e7776b95abb60a91958938bb2840d45ad77bfbb Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Wed, 3 Jul 2013 20:52:31 +0000 Subject: Fix bevel crash bug 35990. Sometimes no face to interpolate from. --- source/blender/bmesh/tools/bmesh_bevel.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c index 85fbdb383fd..d7073ef61be 100644 --- a/source/blender/bmesh/tools/bmesh_bevel.c +++ b/source/blender/bmesh/tools/bmesh_bevel.c @@ -268,8 +268,8 @@ static BMFace *bev_create_ngon(BMesh *bm, BMVert **vert_arr, const int totv, } f = BM_face_create(bm, vert_arr, ee, totv, 0); } - if ((facerep || face_arr) && f) { - BM_elem_attrs_copy(bm, bm, facerep, f); + if ((facerep || (face_arr && face_arr[0])) && f) { + BM_elem_attrs_copy(bm, bm, facerep ? facerep : face_arr[0], f); if (do_interp) { i = 0; BM_ITER_ELEM (l, &iter, f, BM_LOOPS_OF_FACE) { @@ -281,7 +281,8 @@ static BMFace *bev_create_ngon(BMesh *bm, BMVert **vert_arr, const int totv, else { interp_f = facerep; } - BM_loop_interp_from_face(bm, l, interp_f, TRUE, TRUE); + if (interp_f) + BM_loop_interp_from_face(bm, l, interp_f, TRUE, TRUE); i++; } } @@ -404,7 +405,8 @@ static BMFace *bev_create_quad_straddle(BMesh *bm, BMVert *v1, BMVert *v2, BMVer facerep = f1; else facerep = f2; - BM_loop_interp_from_face(bm, l, facerep, TRUE, TRUE); + if (facerep) + BM_loop_interp_from_face(bm, l, facerep, TRUE, TRUE); } return f; } -- cgit v1.2.3