[Bf-blender-cvs] [af2d2d4dff7] master: Fix T58221: Spin tool w/ merge first/last crashes
Campbell Barton
noreply at git.blender.org
Tue Feb 5 03:26:20 CET 2019
Commit: af2d2d4dff77a1436b26007b5aa183075d91d537
Author: Campbell Barton
Date: Tue Feb 5 13:25:55 2019 +1100
Branches: master
https://developer.blender.org/rBaf2d2d4dff77a1436b26007b5aa183075d91d537
Fix T58221: Spin tool w/ merge first/last crashes
Spinning geometry that included non boundary/wire edges
crashed when merge first/last enabled.
===================================================================
M source/blender/bmesh/operators/bmo_dupe.c
===================================================================
diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c
index 5129212f49b..3a07c81129f 100644
--- a/source/blender/bmesh/operators/bmo_dupe.c
+++ b/source/blender/bmesh/operators/bmo_dupe.c
@@ -550,13 +550,14 @@ void bmo_spin_exec(BMesh *bm, BMOperator *op)
if (elem_array[i]->head.htype == BM_EDGE) {
BMEdge *e_src = (BMEdge *)elem_array[i];
BMEdge *e_dst = BM_edge_find_double(e_src);
- BM_edge_splice(bm, e_dst, e_src);
- elem_array_len--;
- elem_array[i] = elem_array[elem_array_len];
- }
- else {
- i++;
+ if (e_dst != NULL) {
+ BM_edge_splice(bm, e_dst, e_src);
+ elem_array_len--;
+ elem_array[i] = elem_array[elem_array_len];
+ continue;
+ }
}
+ i++;
}
/* Full copies of faces may cause overlap. */
for (int i = 0; i < elem_array_len; ) {
More information about the Bf-blender-cvs
mailing list