diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-19 17:54:34 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-19 17:57:53 +0300 |
commit | c2c4420f89750309fdf267ba23a5f43b5e366e16 (patch) | |
tree | 14e9c493128f9fa0a90210ee133a5bd874a0b4e1 /source | |
parent | b1cb79d312b4c01593473456f2564772c93e5ed8 (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 4 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_bevel.c | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a990e9213c3..26938158c73 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -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; + } } } diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c index ba07a3a56cc..5b3f8d5313a 100644 --- a/source/blender/modifiers/intern/MOD_bevel.c +++ b/source/blender/modifiers/intern/MOD_bevel.c @@ -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, |