Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-07-11 22:08:25 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-07-11 22:08:25 +0400
commitb369936b1168984b37b04d4d78184ce59442de9e (patch)
tree9480e3cc920d77279159e79a01132e8e314c9f86 /intern/elbeem
parentc83e32fc339c6b768e0568a9f85097418a427e2b (diff)
Fix for several memory leaks in fluidsim (found with Valgrind).
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/intern/ntl_geometryclass.h1
-rw-r--r--intern/elbeem/intern/ntl_ray.h5
-rw-r--r--intern/elbeem/intern/simulation_object.cpp3
-rw-r--r--intern/elbeem/intern/solver_control.cpp3
-rw-r--r--intern/elbeem/intern/solver_init.cpp4
5 files changed, 13 insertions, 3 deletions
diff --git a/intern/elbeem/intern/ntl_geometryclass.h b/intern/elbeem/intern/ntl_geometryclass.h
index 9282371d183..545f8c1d54f 100644
--- a/intern/elbeem/intern/ntl_geometryclass.h
+++ b/intern/elbeem/intern/ntl_geometryclass.h
@@ -37,6 +37,7 @@ class ntlGeometryClass
//! Default destructor
virtual ~ntlGeometryClass() {
delete mpAttrs;
+ delete mpSwsAttrs;
};
//! Return type id
diff --git a/intern/elbeem/intern/ntl_ray.h b/intern/elbeem/intern/ntl_ray.h
index 096d5fd61d3..9b77fdcae28 100644
--- a/intern/elbeem/intern/ntl_ray.h
+++ b/intern/elbeem/intern/ntl_ray.h
@@ -20,6 +20,7 @@ class ntlRay;
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 @@ public:
/* 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) {
diff --git a/intern/elbeem/intern/simulation_object.cpp b/intern/elbeem/intern/simulation_object.cpp
index 9b47ae696af..81e056771fc 100644
--- a/intern/elbeem/intern/simulation_object.cpp
+++ b/intern/elbeem/intern/simulation_object.cpp
@@ -58,7 +58,8 @@ SimulationObject::~SimulationObject()
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);
}
diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp
index 3dc9b700ccb..ee032f17f8a 100644
--- a/intern/elbeem/intern/solver_control.cpp
+++ b/intern/elbeem/intern/solver_control.cpp
@@ -63,6 +63,9 @@ LbmControlData::LbmControlData() :
LbmControlData::~LbmControlData()
{
+ while (!mCons.empty()) {
+ delete mCons.back(); mCons.pop_back();
+ }
}
diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp
index cbcc99dd6e0..fd7a0b6be2c 100644
--- a/intern/elbeem/intern/solver_init.cpp
+++ b/intern/elbeem/intern/solver_init.cpp
@@ -441,6 +441,10 @@ LbmFsgrSolver::~LbmFsgrSolver()
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);