Sculpt: fix crash in PBVH_FACES
This commit is contained in:
parent
a5d816eb6d
commit
f838fbde06
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue