]> SALOME platform Git repositories - plugins/ghs3dplugin.git/commitdiff
Salome HOME
21948: EDF SMESH : Memory is not freed when deleting a mesh BR_PORTING_VTK6
authoreap <eap@opencascade.com>
Fri, 14 Dec 2012 14:01:30 +0000 (14:01 +0000)
committereap <eap@opencascade.com>
Fri, 14 Dec 2012 14:01:30 +0000 (14:01 +0000)
   Elimenate memory leaks on CORBA objects, servants of SALOMEDS objects etc

src/GHS3DPlugin/GHS3DPlugin_GHS3D.cxx

index 257c774097d69006f79b126d381b9d53eb7545a9..3a48f16ecb7fb636ffa5db570c1b883b8c500b2b 100644 (file)
@@ -211,13 +211,10 @@ TopoDS_Shape GHS3DPlugin_GHS3D::entryToShape(std::string entry)
   GEOM::GEOM_Object_var aGeomObj;
   TopoDS_Shape S = TopoDS_Shape();
   SALOMEDS::SObject_var aSObj = myStudy->FindObjectID( entry.c_str() );
-  SALOMEDS::GenericAttribute_var anAttr;
-
-  if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) {
-    SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-    CORBA::String_var aVal = anIOR->Value();
-    CORBA::Object_var obj = myStudy->ConvertIORToObject(aVal);
+  if (!aSObj->_is_nil() ) {
+    CORBA::Object_var obj = aSObj->GetObject();
     aGeomObj = GEOM::GEOM_Object::_narrow(obj);
+    aSObj->UnRegister();
   }
   if ( !aGeomObj->_is_nil() )
     S = smeshGen_i->GeomObjectToShape( aGeomObj.in() );