Merge branch 'master' into blender2.8
authorBastien Montagne <montagne29@wanadoo.fr>
Mon, 7 May 2018 16:04:16 +0000 (18:04 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Mon, 7 May 2018 16:04:16 +0000 (18:04 +0200)
source/blender/blenkernel/intern/modifier.c

index 29a4fcbb9c7bf79387566114f90e09bbdd0878b7..54e5848c2e61d1c297bd655bbdef9c856deb610b 100644 (file)
@@ -293,6 +293,13 @@ void modifiers_foreachTexLink(Object *ob, TexWalkFunc walk, void *userData)
 void modifier_copyData_generic(const ModifierData *md_src, ModifierData *md_dst)
 {
        const ModifierTypeInfo *mti = modifierType_getInfo(md_src->type);
+
+       /* md_dst may have alredy be fully initialized with some extra allocated data,
+        * we need to free it now to avoid memleak. */
+       if (mti->freeData) {
+               mti->freeData(md_dst);
+       }
+
        const size_t data_size = sizeof(ModifierData);
        const char *md_src_data = ((const char *)md_src) + data_size;
        char       *md_dst_data =       ((char *)md_dst) + data_size;