21948: EDF SMESH : Memory is not freed when deleting a mesh

Delete SMESHDS_Document's at destruction
This commit is contained in:
eap 2012-12-14 13:21:56 +00:00
parent 1199fcd63c
commit d3fb998efd

View File

@ -53,6 +53,9 @@
using namespace std; using namespace std;
//#include <vtkDebugLeaks.h>
//============================================================================= //=============================================================================
/*! /*!
* Constructor * Constructor
@ -67,11 +70,12 @@ SMESH_Gen::SMESH_Gen()
_segmentation = _nbSegments = 10; _segmentation = _nbSegments = 10;
SMDS_Mesh::_meshList.clear(); SMDS_Mesh::_meshList.clear();
MESSAGE(SMDS_Mesh::_meshList.size()); MESSAGE(SMDS_Mesh::_meshList.size());
_counters = new counters(100); //_counters = new counters(100);
#ifdef WITH_SMESH_CANCEL_COMPUTE #ifdef WITH_SMESH_CANCEL_COMPUTE
_compute_canceled = false; _compute_canceled = false;
_sm_current = NULL; _sm_current = NULL;
#endif #endif
//vtkDebugLeaks::SetExitError(0);
} }
//============================================================================= //=============================================================================
@ -83,6 +87,12 @@ SMESH_Gen::SMESH_Gen()
SMESH_Gen::~SMESH_Gen() SMESH_Gen::~SMESH_Gen()
{ {
MESSAGE("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;
}
} }
//============================================================================= //=============================================================================