[Bf-blender-cvs] [0a5ef40c2cd] master: Simulation: fix memory leak

Jacques Lucke noreply at git.blender.org
Wed Jul 22 19:22:12 CEST 2020


Commit: 0a5ef40c2cd77a5c8dfdbcc888759fb0dab9e184
Author: Jacques Lucke
Date:   Wed Jul 22 16:39:24 2020 +0200
Branches: master
https://developer.blender.org/rB0a5ef40c2cd77a5c8dfdbcc888759fb0dab9e184

Simulation: fix memory leak

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

M	source/blender/blenkernel/intern/simulation.cc
M	source/blender/simulation/intern/simulation_solver.cc

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

diff --git a/source/blender/blenkernel/intern/simulation.cc b/source/blender/blenkernel/intern/simulation.cc
index 95340e4e29c..ac9c13e157c 100644
--- a/source/blender/blenkernel/intern/simulation.cc
+++ b/source/blender/blenkernel/intern/simulation.cc
@@ -112,6 +112,7 @@ static void simulation_copy_data(Main *bmain, ID *id_dst, const ID *id_src, cons
     BKE_simulation_state_copy_data(state_src, state_dst);
   }
 
+  BLI_listbase_clear(&simulation_dst->persistent_data_handles);
   BLI_duplicatelist(&simulation_dst->persistent_data_handles,
                     &simulation_src->persistent_data_handles);
 }
diff --git a/source/blender/simulation/intern/simulation_solver.cc b/source/blender/simulation/intern/simulation_solver.cc
index ee7a8d40035..1628d9cac15 100644
--- a/source/blender/simulation/intern/simulation_solver.cc
+++ b/source/blender/simulation/intern/simulation_solver.cc
@@ -257,6 +257,7 @@ static void update_persistent_data_handles(Simulation &simulation,
       PersistentDataHandleItem *, handle_item, &simulation.persistent_data_handles) {
     if (handle_item->id == nullptr) {
       BLI_remlink(&simulation.persistent_data_handles, handle_item);
+      MEM_freeN(handle_item);
       continue;
     }
     if (!used_data_blocks.contains(handle_item->id)) {



More information about the Bf-blender-cvs mailing list