Fix T72792: Crash with Vertex Groups + Weld Modifier after generative modifiers

Some generative modifiers remove the `CD_MDEFORMVERT` custom layer.
So make sure it exists in the mesh.
This commit is contained in:
Germano Cavalcante 2019-12-30 11:25:09 -03:00
parent 3b891989ac
commit 62d131e962
Notes: blender-bot 2023-02-14 08:49:53 +01:00
Referenced by issue #72792, Weld Modifier crashes Blender if vertex group influence is selected and the modifier is after generative modifier(s) in the stack
1 changed files with 9 additions and 7 deletions

View File

@ -1629,13 +1629,15 @@ static Mesh *weldModifier_doWeld(WeldModifierData *wmd, const ModifierEvalContex
if (defgrp_index != -1) {
MDeformVert *dvert, *dv;
dvert = CustomData_get_layer(&mesh->vdata, CD_MDEFORMVERT);
dv = &dvert[0];
v_mask = BLI_BITMAP_NEW(totvert, __func__);
for (i = 0; i < totvert; i++, dv++) {
const bool found = defvert_find_weight(dv, defgrp_index) > 0.0f;
if (found) {
BLI_BITMAP_ENABLE(v_mask, i);
v_mask_act++;
if (dvert) {
dv = &dvert[0];
v_mask = BLI_BITMAP_NEW(totvert, __func__);
for (i = 0; i < totvert; i++, dv++) {
const bool found = defvert_find_weight(dv, defgrp_index) > 0.0f;
if (found) {
BLI_BITMAP_ENABLE(v_mask, i);
v_mask_act++;
}
}
}
}