[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42380] branches/bmesh/blender/source/ blender/bmesh: bmesh: fixed crash in bevel

Joseph Eagar joeedh at gmail.com
Sun Dec 4 01:44:19 CET 2011


Revision: 42380
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42380
Author:   joeedh
Date:     2011-12-04 00:44:09 +0000 (Sun, 04 Dec 2011)
Log Message:
-----------
bmesh: fixed crash in bevel

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_class.h
    branches/bmesh/blender/source/blender/bmesh/operators/bevel.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_class.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_class.h	2011-12-03 23:33:07 UTC (rev 42379)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_class.h	2011-12-04 00:44:09 UTC (rev 42380)
@@ -98,6 +98,7 @@
 	int _index; /*used for sorting during tesselation*/
 } BMLoop;
 
+/*eventually, this structure will be used for supporting holes in faces*/
 typedef struct BMLoopList {
 	struct BMLoopList *next, *prev;
 	struct BMLoop *first, *last;

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bevel.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bevel.c	2011-12-03 23:33:07 UTC (rev 42379)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bevel.c	2011-12-04 00:44:09 UTC (rev 42380)
@@ -288,7 +288,7 @@
 	}
 
 	bm->elem_index_dirty |= BM_EDGE;
-
+	
 	BM_ITER(v, &iter, bm, BM_VERTS_OF_MESH, NULL) {
 		BMIter eiter;
 		
@@ -563,9 +563,9 @@
 		BMVert *vv, *vstart=NULL, *lastv=NULL;
 		SmallHash tmphash;
 		int rad, insorig=0, err=0;
-		
+
 		BLI_smallhash_init(&tmphash);
-		
+				
 		if (!BMO_TestFlag(bm, v, BEVEL_FLAG))
 			continue;
 		
@@ -580,6 +580,9 @@
 			if (BM_Edge_FaceCount(e) < 2)
 				insorig = 1;
 			
+			if (BM_GetIndex(e) == -1)
+				continue;
+			
 			rad = 0;
 			BM_ITER(l, &liter, bm, BM_LOOPS_OF_EDGE, e) {
 				if (!BMO_TestFlag(bm, l->f, FACE_OLD))




More information about the Bf-blender-cvs mailing list