[Bf-blender-cvs] [c09e22306ad] master: Fix (unreported) memleak when copying object with some modifiers.

Bastien Montagne noreply at git.blender.org
Mon May 7 17:59:32 CEST 2018


Commit: c09e22306add3e0e1fdff6171eb21e4fde18019e
Author: Bastien Montagne
Date:   Mon May 7 17:58:35 2018 +0200
Branches: master
https://developer.blender.org/rBc09e22306add3e0e1fdff6171eb21e4fde18019e

Fix (unreported) memleak when copying object with some modifiers.

===================================================================

M	source/blender/blenkernel/intern/modifier.c

===================================================================

diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index ce04f3c31e2..19c0a083703 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -286,6 +286,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;



More information about the Bf-blender-cvs mailing list