Salome HOME
IPAL21263 addToStudy with doRestoreSubShapes=True leads to crash
authordmv <dmv@opencascade.com>
Wed, 22 Jul 2009 11:21:19 +0000 (11:21 +0000)
committerdmv <dmv@opencascade.com>
Wed, 22 Jul 2009 11:21:19 +0000 (11:21 +0000)
src/GEOM_I/GEOM_Gen_i.cc

index 5128552807e1701769c589ec9e7caf8c54b24cb1..eb3a8c5857be2900fe775e511d88d35f39fc8dce 100644 (file)
@@ -802,18 +802,18 @@ GEOM::ListOfGO* GEOM_Gen_i::RestoreSubShapesSO (SALOMEDS::Study_ptr     theStudy
     return aParts._retn();
 
   aParts = RestoreSubShapes(theStudy, anO, theSObject, theArgs, theFindMethod, theInheritFirstArg);
-  aParts._retn();
+  return aParts._retn();
 }
 
 //============================================================================
 // function : addToListOfGO
 // purpose  : static local function
 //============================================================================
-static void addToListOfGO( const GEOM::GEOM_Object_var& theObject,
-                           GEOM::ListOfGO_var& theList )
+static void addToListOfGO( const GEOM::GEOM_Object_ptr& theObject,
+                           GEOM::ListOfGO& theList )
 {
-  const int oldLen = theList->length();
-  theList->length(oldLen + 1);
+  const int oldLen = theList.length();
+  theList.length(oldLen + 1);
   theList[ oldLen ] = theObject;
 }
 
@@ -821,12 +821,12 @@ static void addToListOfGO( const GEOM::GEOM_Object_var& theObject,
 // function : addToListOfGO
 // purpose  : static local function
 //============================================================================
-static void addToListOfGO( GEOM::ListOfGO_var& theSrcList,
-                           GEOM::ListOfGO_var& theTrgList )
+static void addToListOfGO( const GEOM::ListOfGO& theSrcList,
+                           GEOM::ListOfGO& theTrgList )
 {
-  const int oldLen = theTrgList->length();
-  const int srcLen = theSrcList->length();
-  theTrgList->length(oldLen + srcLen);
+  const int oldLen = theTrgList.length();
+  const int srcLen = theSrcList.length();
+  theTrgList.length(oldLen + srcLen);
   for( int i = 0; i < srcLen; i++ )
     theTrgList[ oldLen + i ] = theSrcList[ i ];
 }