[Bf-blender-cvs] [283f43d] master: Fix T37559: Crash dissolving vertices in some situations

Campbell Barton noreply at git.blender.org
Fri Nov 22 09:44:34 CET 2013


Commit: 283f43d31a602c88e4dd7123973689cca84b3f7f
Author: Campbell Barton
Date:   Fri Nov 22 19:42:14 2013 +1100
http://developer.blender.org/rB283f43d31a602c88e4dd7123973689cca84b3f7f

Fix T37559: Crash dissolving vertices in some situations

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

M	source/blender/bmesh/operators/bmo_dissolve.c

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

diff --git a/source/blender/bmesh/operators/bmo_dissolve.c b/source/blender/bmesh/operators/bmo_dissolve.c
index cf36e88..ae645b9 100644
--- a/source/blender/bmesh/operators/bmo_dissolve.c
+++ b/source/blender/bmesh/operators/bmo_dissolve.c
@@ -440,13 +440,18 @@ void bmo_dissolve_verts_exec(BMesh *bm, BMOperator *op)
 		BMO_error_raise(bm, op, BMERR_DISSOLVEVERTS_FAILED, msg);
 	}
 	
-	/* clean up any remainin */
-	BM_ITER_MESH_MUTABLE (v, v_next, &iter, bm, BM_VERTS_OF_MESH) {
+	/* clean up any remaining */
+	/* note: don't use BM_ITER_MESH_MUTABLE here, even though vertices are removed (T37559) */
+	BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
 		if (BMO_elem_flag_test(bm, v, VERT_MARK)) {
 			if (!BM_vert_dissolve(bm, v)) {
 				BMO_error_raise(bm, op, BMERR_DISSOLVEVERTS_FAILED, NULL);
 				return;
 			}
+#ifdef DEBUG
+			/* workaround debug assert */
+			iter.count = bm->totvert;
+#endif
 		}
 	}




More information about the Bf-blender-cvs mailing list