Sculpt: fix crash in PBVH_FACES

This commit is contained in:
Joseph Eagar 2021-10-16 01:48:14 -07:00
parent a5d816eb6d
commit f838fbde06
2 changed files with 8 additions and 4 deletions

View File

@ -2986,6 +2986,7 @@ void SCULPT_orig_vert_data_unode_init(SculptOrigVertData *data, Object *ob, Scul
memset(data, 0, sizeof(*data));
data->unode = unode;
data->datatype = unode ? unode->type : SCULPT_UNDO_COORDS;
data->pbvh = ss->pbvh;
data->ss = ss;
@ -2993,10 +2994,6 @@ void SCULPT_orig_vert_data_unode_init(SculptOrigVertData *data, Object *ob, Scul
if (bm) {
data->bm_log = ss->bm_log;
}
else {
// data->datatype = data->unode->type;
}
}
/**

View File

@ -1632,6 +1632,13 @@ static void sculpt_undo_store_coords(Object *ob, SculptUndoNode *unode)
SculptOrigVertData orig_data;
SCULPT_orig_vert_data_unode_init(&orig_data, ob, unode);
int totvert, allvert;
BKE_pbvh_node_num_verts(ss->pbvh, unode->node, &totvert, &allvert);
if (ss->deform_modifiers_active && !unode->orig_co) {
unode->orig_co = MEM_malloc_arrayN(allvert, sizeof(float) * 3, "sculpt unode undo coords");
}
BKE_pbvh_vertex_iter_begin (ss->pbvh, unode->node, vd, PBVH_ITER_ALL) {
copy_v3_v3(unode->co[vd.i], vd.co);
if (vd.no) {