]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
0021672: [CEA 565] Dump Study from script
authoreap <eap@opencascade.com>
Wed, 20 Jun 2012 09:49:23 +0000 (09:49 +0000)
committereap <eap@opencascade.com>
Wed, 20 Jun 2012 09:49:23 +0000 (09:49 +0000)
  avoid publishing multiple references to the same object

src/GEOM_I/GEOM_Gen_i.cc

index a3184ee93b18c0a7e9f576e5e942a32870091d8f..fe877f791556c7ede77273f58b7482b28a1ffa4a 100644 (file)
@@ -753,12 +753,16 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::AddInStudy (SALOMEDS::Study_ptr theStudy,
   if(aLength < 1) return aResultSO._retn();
 
   //Publish the arguments
+  TCollection_AsciiString aPrevID; // to avoid multiple references to same object
   for(Standard_Integer i = 0; i< aLength; i++) {
     GEOM::GEOM_Object_var anObject = aList[i];
     if(anObject->_is_nil()) continue;
     IOR = _orb->object_to_string(anObject);
     SALOMEDS::SObject_var aSO =  theStudy->FindObjectIOR(IOR.in());
     if(aSO->_is_nil()) continue;
+    CORBA::String_var anID = aSO->GetID();
+    if ( aPrevID == anID.in() ) continue;
+    aPrevID = anID.in();
     SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(aResultSO);
     aStudyBuilder->Addreference(aSubSO, aSO);
     aSO->UnRegister();