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

Delete fields in order of their declaration in the header - for easier check
This commit is contained in:
eap 2012-12-14 13:40:14 +00:00
parent 37eb451785
commit dcf5dee894
3 changed files with 26 additions and 31 deletions

View File

@ -91,7 +91,7 @@ SMESH_CellLabelActor::SMESH_CellLabelActor() {
callBackCommand->SetCallback(SMESH_CellLabelActor::ProcessEvents);
myTransformFilter->AddObserver("VTKViewer_TransformFilter::TransformationFinished",
callBackCommand);
callBackCommand);
callBackCommand->Delete();
}
@ -103,23 +103,22 @@ SMESH_CellLabelActor::~SMESH_CellLabelActor() {
//Deleting of cells numbering pipeline
//---------------------------------------
myCellsNumDataSet->Delete();
myClsLabeledDataMapper->RemoveAllInputs();
myClsLabeledDataMapper->Delete();
// commented: porting to vtk 5.0
// myClsSelectVisiblePoints->UnRegisterAllOutputs();
myClsSelectVisiblePoints->Delete();
myCellsLabels->Delete();
// commented: porting to vtk 5.0
// myClsMaskPoints->UnRegisterAllOutputs();
myClsMaskPoints->Delete();
// commented: porting to vtk 5.0
// myCellCenters->UnRegisterAllOutputs();
myCellCenters->Delete();
myCellsLabels->Delete();
myClsLabeledDataMapper->RemoveAllInputs();
myClsLabeledDataMapper->Delete();
// commented: porting to vtk 5.0
// myClsSelectVisiblePoints->UnRegisterAllOutputs();
myClsSelectVisiblePoints->Delete();
}
@ -176,9 +175,9 @@ void SMESH_CellLabelActor::UpdateLabels() {
void SMESH_CellLabelActor::ProcessEvents(vtkObject* vtkNotUsed(theObject),
unsigned long theEvent,
void* theClientData,
void* vtkNotUsed(theCallData)) {
unsigned long theEvent,
void* theClientData,
void* vtkNotUsed(theCallData)) {
SMESH_CellLabelActor* self = reinterpret_cast<SMESH_CellLabelActor*>(theClientData);
if(self)
self->UpdateLabels();

View File

@ -42,9 +42,9 @@ public:
static SMESH_CellLabelActor* New();
static void ProcessEvents(vtkObject* theObject,
unsigned long theEvent,
void* theClientData,
void* theCallData);
unsigned long theEvent,
void* theClientData,
void* theCallData);
vtkTypeMacro(SMESH_CellLabelActor, SMESH_DeviceActor);

View File

@ -138,33 +138,29 @@ SMESH_DeviceActor
{
if(MYDEBUG) MESSAGE("~SMESH_DeviceActor - "<<this);
myProperty->Delete();
myMapper->Delete();
myShrinkFilter->Delete();
myExtractUnstructuredGrid->Delete();
myMergeFilter->Delete();
myGeomFilter->Delete();
myProperty->Delete();
myExtractGeometry->Delete();
myTransformFilter->Delete();
for(int i = 0, iEnd = myPassFilter.size(); i < iEnd; i++){
myPassFilter[i]->Delete();
}
myMergeFilter->Delete();
myExtractUnstructuredGrid->Delete();
// Orientation of faces
myFaceOrientationFilter->Delete();
myFaceOrientationDataMapper->RemoveAllInputs();
myFaceOrientationDataMapper->Delete();
myFaceOrientation->Delete();
myGeomFilter->Delete();
myTransformFilter->Delete();
for(int i = 0, iEnd = myPassFilter.size(); i < iEnd; i++)
myPassFilter[i]->Delete();
myShrinkFilter->Delete();
}