21948: EDF SMESH : Memory is not freed when deleting a mesh
Elimenate memory leaks on CORBA objects, servants of SALOMEDS objects etc
This commit is contained in:
parent
e3e100b8f3
commit
7003c25174
@ -230,12 +230,10 @@ void NETGENPlugin_Mesher::SetParameters(const NETGENPlugin_Hypothesis* hyp)
|
|||||||
GEOM::GEOM_Object_var aGeomObj;
|
GEOM::GEOM_Object_var aGeomObj;
|
||||||
TopoDS_Shape S = TopoDS_Shape();
|
TopoDS_Shape S = TopoDS_Shape();
|
||||||
SALOMEDS::SObject_var aSObj = myStudy->FindObjectID( entry.c_str() );
|
SALOMEDS::SObject_var aSObj = myStudy->FindObjectID( entry.c_str() );
|
||||||
SALOMEDS::GenericAttribute_var anAttr;
|
if (!aSObj->_is_nil()) {
|
||||||
if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) {
|
CORBA::Object_var obj = aSObj->GetObject();
|
||||||
SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
|
|
||||||
CORBA::String_var aVal = anIOR->Value();
|
|
||||||
CORBA::Object_var obj = myStudy->ConvertIORToObject(aVal);
|
|
||||||
aGeomObj = GEOM::GEOM_Object::_narrow(obj);
|
aGeomObj = GEOM::GEOM_Object::_narrow(obj);
|
||||||
|
aSObj->UnRegister();
|
||||||
}
|
}
|
||||||
if ( !aGeomObj->_is_nil() )
|
if ( !aGeomObj->_is_nil() )
|
||||||
S = smeshGen_i->GeomObjectToShape( aGeomObj.in() );
|
S = smeshGen_i->GeomObjectToShape( aGeomObj.in() );
|
||||||
@ -2031,7 +2029,9 @@ namespace
|
|||||||
std::string text(netgen::NgException& ex)
|
std::string text(netgen::NgException& ex)
|
||||||
{
|
{
|
||||||
SMESH_Comment str("NgException");
|
SMESH_Comment str("NgException");
|
||||||
str << " at " << netgen::multithread.task << ": " << ex.What();
|
if ( strlen( netgen::multithread.task ) > 0 )
|
||||||
|
str << " at " << netgen::multithread.task;
|
||||||
|
str << ": " << ex.What();
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user