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:
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
|
@ -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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue