Fix T58221: Spin tool w/ merge first/last crashes

Spinning geometry that included non boundary/wire edges
crashed when merge first/last enabled.
This commit is contained in:
Campbell Barton 2019-02-05 13:25:55 +11:00
parent 445433a691
commit af2d2d4dff
Notes: blender-bot 2023-02-14 04:54:15 +01:00
Referenced by issue #58221, Blender crashes on "spin tool" use
1 changed files with 7 additions and 6 deletions

View File

@ -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; ) {