[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58030] trunk/blender/source/blender/bmesh /operators/bmo_fill_edgeloop.c: fix for writing past array end with loop filling.

Campbell Barton ideasman42 at gmail.com
Sat Jul 6 04:20:41 CEST 2013


Revision: 58030
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58030
Author:   campbellbarton
Date:     2013-07-06 02:20:39 +0000 (Sat, 06 Jul 2013)
Log Message:
-----------
fix for writing past array end with loop filling.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_fill_edgeloop.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_fill_edgeloop.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_fill_edgeloop.c	2013-07-06 01:42:45 UTC (rev 58029)
+++ trunk/blender/source/blender/bmesh/operators/bmo_fill_edgeloop.c	2013-07-06 02:20:39 UTC (rev 58030)
@@ -62,22 +62,19 @@
 		BMO_elem_flag_enable(bm, e, EDGE_MARK);
 		BM_ITER_ELEM (v, &viter, e, BM_VERTS_OF_EDGE) {
 			if (BMO_elem_flag_test(bm, v, VERT_USED) == false) {
-				BMO_elem_flag_enable(bm, v, VERT_USED);
-				verts[i++] = v;
 				if (i == tote) {
-					break;
+					goto cleanup;
 				}
+
+				BMO_elem_flag_enable(bm, v, VERT_USED);
+				verts[i++] = v;
 			}
 		}
-		if (i > tote) {
-			break;
-		}
 	}
 
 	/* we have a different number of verts to edges */
 	if (i != tote) {
-		MEM_freeN(verts);
-		return;
+		goto cleanup;
 	}
 
 	/* loop over connected flagged edges and fill in faces,  this is made slightly more
@@ -156,5 +153,6 @@
 		BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "faces.out", BM_FACE, ELE_OUT);
 	}
 
+cleanup:
 	MEM_freeN(verts);
 }




More information about the Bf-blender-cvs mailing list