[Bf-blender-cvs] [1c25622] fracture_modifier: memory leak fix for text fracture / sub object groups

Martin Felke noreply at git.blender.org
Thu Oct 9 19:27:16 CEST 2014


Commit: 1c256222dd2ed896dbb5e47258708ac8c1af29ac
Author: Martin Felke
Date:   Thu Oct 9 19:27:04 2014 +0200
Branches: fracture_modifier
https://developer.blender.org/rB1c256222dd2ed896dbb5e47258708ac8c1af29ac

memory leak fix for text fracture / sub object groups

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

M	source/blender/modifiers/intern/MOD_fracture.c

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

diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index 31c8864..3a6200d 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -602,6 +602,19 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 		}
 	}
 
+	/* free newly created derivedmeshes only, but keep derivedData and final_dm*/
+	if ((clean_dm != group_dm) && (clean_dm != derivedData) && (clean_dm != final_dm))
+	{
+		clean_dm->needsFree = 1;
+		clean_dm->release(clean_dm);
+	}
+
+	if ((group_dm != derivedData) && (group_dm != final_dm))
+	{
+		group_dm->needsFree = 1;
+		group_dm->release(group_dm);
+	}
+
 	return final_dm;
 }
 
@@ -677,6 +690,19 @@ static DerivedMesh *applyModifierEM(ModifierData *md, Object *ob,
 		}
 	}
 
+	/* free newly created derivedmeshes only, but keep derivedData and final_dm*/
+	if ((clean_dm != group_dm) && (clean_dm != derivedData) && (clean_dm != final_dm))
+	{
+		clean_dm->needsFree = 1;
+		clean_dm->release(clean_dm);
+	}
+
+	if ((group_dm != derivedData) && (group_dm != final_dm))
+	{
+		group_dm->needsFree = 1;
+		group_dm->release(group_dm);
+	}
+
 	return final_dm;
 }




More information about the Bf-blender-cvs mailing list