From 5537117366db2a1af118a06ac89ba223de8c690e Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 28 Jan 2019 21:48:09 +0100 Subject: Fix several missing cases of copy func for modifiers. Any time a modifier data has non-ID pointer, it should have own copy function (and also take care of proper init/reset in its init callback). --- source/blender/modifiers/intern/MOD_surface.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'source/blender/modifiers/intern/MOD_surface.c') diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c index a7198b5721e..248292ded35 100644 --- a/source/blender/modifiers/intern/MOD_surface.c +++ b/source/blender/modifiers/intern/MOD_surface.c @@ -59,6 +59,21 @@ static void initData(ModifierData *md) SurfaceModifierData *surmd = (SurfaceModifierData *) md; surmd->bvhtree = NULL; + surmd->mesh = NULL; + surmd->x = NULL; + surmd->v = NULL; +} + +static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int flag) +{ + SurfaceModifierData *surmd_dst = (SurfaceModifierData *)md_dst; + + modifier_copyData_generic(md_src, md_dst, flag); + + surmd_dst->bvhtree = NULL; + surmd_dst->mesh = NULL; + surmd_dst->x = NULL; + surmd_dst->v = NULL; } static void freeData(ModifierData *md) @@ -194,7 +209,7 @@ ModifierTypeInfo modifierType_Surface = { eModifierTypeFlag_AcceptsCVs | eModifierTypeFlag_NoUserAdd, - /* copyData */ NULL, + /* copyData */ copyData, /* deformVerts_DM */ NULL, /* deformMatrices_DM */ NULL, -- cgit v1.2.3