diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/bmesh/operators/bmo_dupe.c | 13 |
1 files changed, 7 insertions, 6 deletions
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; ) { |