[Bf-blender-cvs] [12f7fd5] fracture_modifier: attempt to reduce a memoryleak

Martin Felke noreply at git.blender.org
Sat Jan 30 16:42:43 CET 2016


Commit: 12f7fd5a08b688d11e145c050a4ce86b2b12f5f2
Author: Martin Felke
Date:   Sat Jan 30 16:42:34 2016 +0100
Branches: fracture_modifier
https://developer.blender.org/rB12f7fd5a08b688d11e145c050a4ce86b2b12f5f2

attempt to reduce a memoryleak

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

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

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

diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 203dd2f..a54ab0c 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -4150,6 +4150,7 @@ static void resetDynamic(RigidBodyWorld *rbw, bool do_reset_always)
 		{
 			RigidBodyShardCon *rbsc;
 			MeshIsland *mi;
+			Scene *scene = fmd->modifier.scene;
 
 			if (do_reset_always)
 			{
@@ -4167,6 +4168,7 @@ static void resetDynamic(RigidBodyWorld *rbw, bool do_reset_always)
 					{
 						copy_v3_v3(mi->rigidbody->pos, loc);
 						copy_qt_qt(mi->rigidbody->orn, rot);
+						BKE_rigidbody_remove_shard(scene, mi);
 						validateShard(rbw, mi, ob, false, false);
 					}
 				}
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index b81c111..a0a5227 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -453,11 +453,11 @@ static void free_modifier(FractureModifierData *fmd, bool do_free_seq)
 {
 	if (fmd->fracture_mode != MOD_FRACTURE_DYNAMIC)
 	{
-		free_simulation(fmd, do_free_seq, false);
+		free_simulation(fmd, false, false);
 	}
 	else if (!do_free_seq)
 	{
-		free_simulation(fmd, true, false);
+		free_simulation(fmd, true, true);
 	}
 
 	if (fmd->material_index_map)




More information about the Bf-blender-cvs mailing list