diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2016-08-17 18:23:11 +0300 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2016-08-17 18:24:31 +0300 |
commit | e3b5aa9bb1efd0781912dc1d6795e68f082164d0 (patch) | |
tree | 67692bbdc87f4c3e00a2a99960daf38200195f49 | |
parent | 8cac980a289676b34613fe77c9fb1f2fd57212d8 (diff) |
Fix Bevel crashes T49088 and T48858.
Was calling the fast path for finding edge order in cases
where it should not have been called.
-rw-r--r-- | source/blender/bmesh/tools/bmesh_bevel.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c index b647f5a667d..1dfb9dee8eb 100644 --- a/source/blender/bmesh/tools/bmesh_bevel.c +++ b/source/blender/bmesh/tools/bmesh_bevel.c @@ -3563,7 +3563,7 @@ static void find_bevel_edge_order(BMesh *bm, BevVert *bv, BMEdge *first_bme) BLI_assert(first_bme != NULL); bv->edges[i].e = first_bme; BM_BEVEL_EDGE_TAG_ENABLE(first_bme); - if (fast_bevel_edge_order(bv)) + if (i == 0 && fast_bevel_edge_order(bv)) break; i = bevel_edge_order_extend(bm, bv, i); i++; @@ -3588,6 +3588,7 @@ static void find_bevel_edge_order(BMesh *bm, BevVert *bv, BMEdge *first_bme) e2 = (i == bv->edgecount - 1) ? &bv->edges[0] : &bv->edges[i + 1]; bme = e->e; bme2 = e2->e; + BLI_assert(bme != NULL); BM_ITER_ELEM(l, &iter, bme, BM_LOOPS_OF_EDGE) { f = l->f; if ((l->prev->e == bme2 || l->next->e == bme2) && !e->fnext && !e2->fprev) |