Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-11-22 12:42:14 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-22 12:42:14 +0400
commit283f43d31a602c88e4dd7123973689cca84b3f7f (patch)
tree34a4532a60ff7c389ecd2f604fe092ef629bc8f0
parentd4a11388bf988b9377b19269abf2f0632ddd1fd5 (diff)
Fix T37559: Crash dissolving vertices in some situations
-rw-r--r--source/blender/bmesh/operators/bmo_dissolve.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/bmesh/operators/bmo_dissolve.c b/source/blender/bmesh/operators/bmo_dissolve.c
index cf36e88ea98..ae645b97874 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
}
}