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);