Salome HOME
Migration on OCCT > 7.1: properly set TDataStd_ExtStringList attribute
[modules/geom.git] / src / GEOM / GEOM_Function.cxx
index e96a3a52cc4c39a2d9793236015ea86d7811f48b..952dbd3e95a0d7bd9e4fa89fb3d6a01581232cef 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 
 #include <TColStd_ListOfInteger.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <TColStd_HArray1OfReal.hxx>
-#include <TColStd_HArray1OfInteger.hxx>
-#include <TColStd_HSequenceOfTransient.hxx>
-#include <TCollection_AsciiString.hxx>
 #include <TCollection_ExtendedString.hxx>
 
 #include <cstdlib>
@@ -589,9 +585,10 @@ TCollection_AsciiString GEOM_Function::GetString(int thePosition)
   Handle(TDataStd_Comment) aString;
   TDF_Label anArgLabel = ARGUMENT(thePosition);
   if(!anArgLabel.FindAttribute(TDataStd_Comment::GetID(), aString)) return aRes;
-
+  char *str = new char[aString->Get().LengthOfCString()+1];
+  aString->Get().ToUTF8CString(str);
+  aRes = TCollection_AsciiString(str);
   _isDone = true;
-  aRes = TCollection_AsciiString(aString->Get());
   return aRes;
 }
 
@@ -825,12 +822,7 @@ void GEOM_Function::AddSubShapeReference(Handle(GEOM_Function) theSubShape)
 
   TDF_Label aSubShapesLabel = _label.FindChild(SUBSHAPES_LABEL);
 
-  Handle(TDataStd_ExtStringList) aList;
-  if (!aSubShapesLabel.FindAttribute(TDataStd_ExtStringList::GetID(), aList)) {
-    aList = new TDataStd_ExtStringList;
-    aSubShapesLabel.AddAttribute(aList);
-  }
-
+  Handle(TDataStd_ExtStringList) aList = TDataStd_ExtStringList::Set( aSubShapesLabel );
   TCollection_AsciiString anEntry;
   TDF_Tool::Entry(theSubShape->GetOwnerEntry(), anEntry);
   aList->Append(anEntry);
@@ -883,11 +875,7 @@ const TDataStd_ListOfExtendedString& GEOM_Function::GetSubShapeReferences()
 
   TDF_Label aSubShapesLabel = _label.FindChild(SUBSHAPES_LABEL);
 
-  Handle(TDataStd_ExtStringList) aList;
-  if (!aSubShapesLabel.FindAttribute(TDataStd_ExtStringList::GetID(), aList)) {
-    aList = new TDataStd_ExtStringList;
-    aSubShapesLabel.AddAttribute(aList);
-  }
+  Handle(TDataStd_ExtStringList) aList = TDataStd_ExtStringList::Set( aSubShapesLabel );
 
   _isDone = true;
   return aList->List();
@@ -982,9 +970,14 @@ void* GEOM_Function::GetCallBackData()
   if(!aChild.FindAttribute(TDataStd_Comment::GetID(), aComment)) return NULL;
   TCollection_AsciiString string( aComment->Get() );
 
-  long long address = atoll( string.ToCString() );
+  long long address;
+#ifndef WIN32
+  address = atoll ( string.ToCString() );
+#else
+  address = _strtoi64 ( string.ToCString(), NULL, 10 );
+#endif
+
   return reinterpret_cast<void*> ( address );
 }
 
-IMPLEMENT_STANDARD_HANDLE (GEOM_Function, Standard_Transient);
-IMPLEMENT_STANDARD_RTTIEXT(GEOM_Function, Standard_Transient );
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(GEOM_Function, Standard_Transient );