[Bf-blender-cvs] [fcb49d8029a] fluid-mantaflow: Mantaflow: Fix for memory deallocation

Sebastián Barschkis noreply at git.blender.org
Wed Nov 20 14:40:11 CET 2019


Commit: fcb49d8029a1c744a992d5e4501b98ae94986b18
Author: Sebastián Barschkis
Date:   Wed Nov 20 13:00:06 2019 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rBfcb49d8029a1c744a992d5e4501b98ae94986b18

Mantaflow: Fix for memory deallocation

Mesh was being freed slightly too early. Might have been the cause of very random crashes.

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

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

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

diff --git a/source/blender/blenkernel/intern/manta.c b/source/blender/blenkernel/intern/manta.c
index 1d4814ee592..180fb63df2a 100644
--- a/source/blender/blenkernel/intern/manta.c
+++ b/source/blender/blenkernel/intern/manta.c
@@ -889,7 +889,9 @@ void mantaModifier_copy(const struct MantaModifierData *mmd,
     tmds->fluid_group = mds->fluid_group;
     tmds->eff_group = mds->eff_group;
     tmds->coll_group = mds->coll_group;
-    MEM_freeN(tmds->effector_weights);
+    if (tmds->effector_weights) {
+      MEM_freeN(tmds->effector_weights);
+    }
     tmds->effector_weights = MEM_dupallocN(mds->effector_weights);
 
     /* adaptive domain options */
@@ -1359,7 +1361,6 @@ static void obstacles_from_mesh(Object *coll_ob,
     }
     /* free bvh tree */
     free_bvhtree_from_mesh(&treeData);
-    BKE_id_free(NULL, me);
 
     if (vert_vel) {
       MEM_freeN(vert_vel);
@@ -1367,6 +1368,7 @@ static void obstacles_from_mesh(Object *coll_ob,
     if (me->mvert) {
       MEM_freeN(me->mvert);
     }
+    BKE_id_free(NULL, me);
   }
 }
 
@@ -2560,7 +2562,6 @@ static void emit_from_mesh(
     if (vert_vel) {
       MEM_freeN(vert_vel);
     }
-
     if (me->mvert) {
       MEM_freeN(me->mvert);
     }



More information about the Bf-blender-cvs mailing list