diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_cloth.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_cloth.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c index 865157ce585..5050333cd43 100644 --- a/source/blender/modifiers/intern/MOD_cloth.c +++ b/source/blender/modifiers/intern/MOD_cloth.c @@ -123,15 +123,19 @@ static void copyData(ModifierData *md, ModifierData *target) { ClothModifierData *clmd = (ClothModifierData*) md; ClothModifierData *tclmd = (ClothModifierData*) target; - - if(tclmd->sim_parms) + + if(tclmd->sim_parms) { + if(tclmd->sim_parms->effector_weights) + MEM_freeN(tclmd->sim_parms->effector_weights); MEM_freeN(tclmd->sim_parms); + } + if(tclmd->coll_parms) MEM_freeN(tclmd->coll_parms); BKE_ptcache_free_list(&tclmd->ptcaches); tclmd->point_cache = NULL; - + tclmd->sim_parms = MEM_dupallocN(clmd->sim_parms); if(clmd->sim_parms->effector_weights) tclmd->sim_parms->effector_weights = MEM_dupallocN(clmd->sim_parms->effector_weights); |