[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15532] branches/fluidcontrol/intern/ elbeem/intern: Fix for several memory leaks in fluidsim ( found with Valgrind).

Daniel Genrich daniel.genrich at gmx.net
Fri Jul 11 20:08:26 CEST 2008


Revision: 15532
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15532
Author:   genscher
Date:     2008-07-11 20:08:25 +0200 (Fri, 11 Jul 2008)

Log Message:
-----------
Fix for several memory leaks in fluidsim (found with Valgrind).

Modified Paths:
--------------
    branches/fluidcontrol/intern/elbeem/intern/ntl_geometryclass.h
    branches/fluidcontrol/intern/elbeem/intern/ntl_ray.h
    branches/fluidcontrol/intern/elbeem/intern/simulation_object.cpp
    branches/fluidcontrol/intern/elbeem/intern/solver_control.cpp
    branches/fluidcontrol/intern/elbeem/intern/solver_init.cpp

Modified: branches/fluidcontrol/intern/elbeem/intern/ntl_geometryclass.h
===================================================================
--- branches/fluidcontrol/intern/elbeem/intern/ntl_geometryclass.h	2008-07-11 17:08:45 UTC (rev 15531)
+++ branches/fluidcontrol/intern/elbeem/intern/ntl_geometryclass.h	2008-07-11 18:08:25 UTC (rev 15532)
@@ -37,6 +37,7 @@
 		//! Default destructor
 		virtual ~ntlGeometryClass() {
 			delete mpAttrs; 
+			delete mpSwsAttrs;
 		};
 
 		//! Return type id

Modified: branches/fluidcontrol/intern/elbeem/intern/ntl_ray.h
===================================================================
--- branches/fluidcontrol/intern/elbeem/intern/ntl_ray.h	2008-07-11 17:08:45 UTC (rev 15531)
+++ branches/fluidcontrol/intern/elbeem/intern/ntl_ray.h	2008-07-11 18:08:25 UTC (rev 15532)
@@ -20,6 +20,7 @@
 class ntlTree;
 class ntlScene;
 class ntlRenderGlobals;
+class ntlGeometryObject;
 
 //! store data for an intersection of a ray and a triangle
 // NOT YET USED
@@ -323,8 +324,8 @@
   /* CONSTRUCTORS */
   /*! Default constructor */
   ntlScene( ntlRenderGlobals *glob, bool del=true );
-  /*! Default destructor */
-   ~ntlScene();
+  /*! Default destructor  */
+  ~ntlScene();
 
 	/*! Add an object to the scene */
 	inline void addGeoClass(ntlGeometryClass *geo) { 

Modified: branches/fluidcontrol/intern/elbeem/intern/simulation_object.cpp
===================================================================
--- branches/fluidcontrol/intern/elbeem/intern/simulation_object.cpp	2008-07-11 17:08:45 UTC (rev 15531)
+++ branches/fluidcontrol/intern/elbeem/intern/simulation_object.cpp	2008-07-11 18:08:25 UTC (rev 15532)
@@ -58,7 +58,8 @@
 	if(mpGiTree)         delete mpGiTree;
 	if(mpElbeemSettings) delete mpElbeemSettings;
 	if(mpLbm)            delete mpLbm;
-  if(mpParam)          delete mpParam;
+  	if(mpParam)          delete mpParam;
+	if(mpParts)          delete mpParts;
 	debMsgStd("SimulationObject",DM_MSG,"El'Beem Done!\n",10);
 }
 

Modified: branches/fluidcontrol/intern/elbeem/intern/solver_control.cpp
===================================================================
--- branches/fluidcontrol/intern/elbeem/intern/solver_control.cpp	2008-07-11 17:08:45 UTC (rev 15531)
+++ branches/fluidcontrol/intern/elbeem/intern/solver_control.cpp	2008-07-11 18:08:25 UTC (rev 15532)
@@ -63,6 +63,9 @@
 
 LbmControlData::~LbmControlData() 
 {
+	while (!mCons.empty()) {
+		delete mCons.back();  mCons.pop_back();
+	}
 }
 
 

Modified: branches/fluidcontrol/intern/elbeem/intern/solver_init.cpp
===================================================================
--- branches/fluidcontrol/intern/elbeem/intern/solver_init.cpp	2008-07-11 17:08:45 UTC (rev 15531)
+++ branches/fluidcontrol/intern/elbeem/intern/solver_init.cpp	2008-07-11 18:08:25 UTC (rev 15532)
@@ -441,6 +441,10 @@
 	delete mpIso;
 	if(mpPreviewSurface) delete mpPreviewSurface;
 	// cleanup done during scene deletion...
+	
+#if LBM_INCLUDE_CONTROL==1
+	if(mpControl) delete mpControl;
+#endif
 
 	// always output performance estimate
 	debMsgStd("LbmFsgrSolver::~LbmFsgrSolver",DM_MSG," Avg. MLSUPS:"<<(mAvgMLSUPS/mAvgMLSUPSCnt), 5);





More information about the Bf-blender-cvs mailing list