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:
Bastien Montagne 2018-08-19 16:54:34 +02:00
parent b1cb79d312
commit c2c4420f89
Notes: blender-bot 2023-02-14 10:37:50 +01:00
Referenced by issue #56450, Crash with bevel modifier
2 changed files with 14 additions and 1 deletions

View File

@ -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;
}
}
}

View File

@ -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,