Fix T56450: Crash with bevel modifier.
POinters shall always be explicitely handled in modifier copying code, as well as reading code! Runtime ones shall just be NULL-ed.
This commit is contained in:
parent
b1cb79d312
commit
c2c4420f89
Notes:
blender-bot
2023-02-14 10:37:50 +01:00
Referenced by issue #56450, Crash with bevel modifier
|
@ -5418,6 +5418,10 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (md->type == eModifierType_Bevel) {
|
||||
BevelModifierData *bmd = (BevelModifierData *)md;
|
||||
bmd->clnordata.faceHash = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -75,6 +75,15 @@ static void initData(ModifierData *md)
|
|||
bmd->clnordata.faceHash = NULL;
|
||||
}
|
||||
|
||||
static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int UNUSED(flag))
|
||||
{
|
||||
BevelModifierData *bmd_src = (BevelModifierData *)md_src;
|
||||
BevelModifierData *bmd_dst = (BevelModifierData *)md_dst;
|
||||
|
||||
*bmd_dst = *bmd_src;
|
||||
bmd_dst->clnordata.faceHash = NULL;
|
||||
}
|
||||
|
||||
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
{
|
||||
BevelModifierData *bmd = (BevelModifierData *)md;
|
||||
|
@ -469,7 +478,7 @@ ModifierTypeInfo modifierType_Bevel = {
|
|||
eModifierTypeFlag_EnableInEditmode |
|
||||
eModifierTypeFlag_AcceptsCVs,
|
||||
|
||||
/* copyData */ modifier_copyData_generic,
|
||||
/* copyData */ copyData,
|
||||
|
||||
/* deformVerts_DM */ NULL,
|
||||
/* deformMatrices_DM */ NULL,
|
||||
|
|
Loading…
Reference in New Issue