[Bf-blender-cvs] [c491b50139d] fracture_modifier: fix potential memory leak

Martin Felke noreply at git.blender.org
Tue Feb 13 18:19:55 CET 2018


Commit: c491b50139d3972949fc3e72acf4dc662d1f84a6
Author: Martin Felke
Date:   Tue Feb 13 18:19:18 2018 +0100
Branches: fracture_modifier
https://developer.blender.org/rBc491b50139d3972949fc3e72acf4dc662d1f84a6

fix potential memory leak

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

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 fa479b5772f..042e6e3887b 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -5145,11 +5145,23 @@ static DerivedMesh *do_prefractured(FractureModifierData *fmd, Object *ob, Deriv
 
 	if (fmd->dm_group && fmd->use_constraint_group)
 	{
-		//remove collected mesh here
-		final_dm = derivedData;
-
 		//remove own, unnecessary meshislands and rigidbodies
 		free_meshislands(fmd, &fmd->meshIslands, true);
+		free_shards(fmd);
+		if (fmd->dm) {
+			fmd->dm->needsFree = 1;
+			fmd->dm->release(fmd->dm);
+			fmd->dm = NULL;
+		}
+
+		if (fmd->visible_mesh_cached) {
+			fmd->visible_mesh_cached->needsFree = 1;
+			fmd->visible_mesh_cached->release(fmd->visible_mesh_cached);
+			fmd->visible_mesh_cached = NULL;
+		}
+
+		//remove collected mesh here
+		final_dm = derivedData;
 	}
 
 	/* free newly created derivedmeshes only, but keep derivedData and final_dm*/



More information about the Bf-blender-cvs mailing list