From d3fb998efd16fafbb69f1062efa9a722ec0431a9 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 14 Dec 2012 13:21:56 +0000 Subject: [PATCH] 21948: EDF SMESH : Memory is not freed when deleting a mesh Delete SMESHDS_Document's at destruction --- src/SMESH/SMESH_Gen.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx index 95013c9d4..58b649bf7 100644 --- a/src/SMESH/SMESH_Gen.cxx +++ b/src/SMESH/SMESH_Gen.cxx @@ -53,6 +53,9 @@ using namespace std; +//#include + + //============================================================================= /*! * Constructor @@ -67,11 +70,12 @@ SMESH_Gen::SMESH_Gen() _segmentation = _nbSegments = 10; SMDS_Mesh::_meshList.clear(); MESSAGE(SMDS_Mesh::_meshList.size()); - _counters = new counters(100); + //_counters = new counters(100); #ifdef WITH_SMESH_CANCEL_COMPUTE _compute_canceled = false; _sm_current = NULL; #endif + //vtkDebugLeaks::SetExitError(0); } //============================================================================= @@ -83,6 +87,12 @@ SMESH_Gen::SMESH_Gen() SMESH_Gen::~SMESH_Gen() { MESSAGE("SMESH_Gen::~SMESH_Gen"); + std::map < int, StudyContextStruct * >::iterator i_sc = _mapStudyContext.begin(); + for ( ; i_sc != _mapStudyContext.end(); ++i_sc ) + { + delete i_sc->second->myDocument; + delete i_sc->second; + } } //=============================================================================