[Bf-blender-cvs] [e3b5aa9] master: Fix Bevel crashes T49088 and T48858.

Howard Trickey noreply at git.blender.org
Wed Aug 17 17:29:09 CEST 2016


Commit: e3b5aa9bb1efd0781912dc1d6795e68f082164d0
Author: Howard Trickey
Date:   Wed Aug 17 11:23:11 2016 -0400
Branches: master
https://developer.blender.org/rBe3b5aa9bb1efd0781912dc1d6795e68f082164d0

Fix Bevel crashes T49088 and T48858.

Was calling the fast path for finding edge order in cases
where it should not have been called.

===================================================================

M	source/blender/bmesh/tools/bmesh_bevel.c

===================================================================

diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index b647f5a..1dfb9de 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)




More information about the Bf-blender-cvs mailing list