widgetmodel/alfwidgetmodel/src/alfvarianttype.cpp
changeset 3 4526337fb576
parent 0 e83bab7cf002
equal deleted inserted replaced
2:b1a1f09f9110 3:4526337fb576
    25 #include <osn/alfptrvector.h>
    25 #include <osn/alfptrvector.h>
    26 #include <alf/alfvarianttype.h>
    26 #include <alf/alfvarianttype.h>
    27 #include <osn/osncommon.h>
    27 #include <osn/osncommon.h>
    28 #include <osn/ustring.h>
    28 #include <osn/ustring.h>
    29 #include <alf/alfexceptions.h>
    29 #include <alf/alfexceptions.h>
    30 #include "alf/alfperf.h"
    30 //#include "alf/alfperf.h"
    31 #include <osn/osnnew.h>
    31 #include <osn/osnnew.h>
    32 #include "alfsort.h"
    32 #include "alfsort.h"
    33 
    33 
    34 using osncore::UString;
    34 using osncore::UString;
    35 using osncore::AlfPtrVector;
    35 using osncore::AlfPtrVector;
   579 //
   579 //
   580 OSN_EXPORT IAlfContainer* AlfContainer::clone()
   580 OSN_EXPORT IAlfContainer* AlfContainer::clone()
   581     {
   581     {
   582     try
   582     try
   583     {
   583     {
   584         ALF_PERF_START( perfdata, "AlfContainer-Clone-Cloning Container")
   584         //ALF_PERF_START( perfdata, "AlfContainer-Clone-Cloning Container")
   585         auto_ptr<AlfContainer> clone( new( EMM ) AlfContainer() );
   585         auto_ptr<AlfContainer> clone( new( EMM ) AlfContainer() );
   586         auto_ptr<IAlfVariantType> childData;
   586         auto_ptr<IAlfVariantType> childData;
   587         
   587         
   588         for ( int i = 0; i < mContainerData->mArray.count(); ++i )
   588         for ( int i = 0; i < mContainerData->mArray.count(); ++i )
   589             {                
   589             {                
   625                     }
   625                     }
   626             clone->mContainerData->mArray.resize( clone->mContainerData->mArray.count() + 1 );
   626             clone->mContainerData->mArray.resize( clone->mContainerData->mArray.count() + 1 );
   627             clone->mContainerData->mArray.insert( clone->mContainerData->mArray.count(), childData.get() );
   627             clone->mContainerData->mArray.insert( clone->mContainerData->mArray.count(), childData.get() );
   628             childData.release(); // ownership was transferred.
   628             childData.release(); // ownership was transferred.
   629             }
   629             }
   630         ALF_PERF_STOP( perfdata, "AlfContainer-Clone-Cloning Container")
   630         //ALF_PERF_STOP( perfdata, "AlfContainer-Clone-Cloning Container")
   631         return clone.release();
   631         return clone.release();
   632       }
   632       }
   633       catch(...)
   633       catch(...)
   634       {
   634       {
   635           ALF_THROW(AlfDataException,EInvalidContainerOperation,"AlfContainer")
   635           ALF_THROW(AlfDataException,EInvalidContainerOperation,"AlfContainer")
  1063 //
  1063 //
  1064 OSN_EXPORT IAlfMap* AlfMap::clone()
  1064 OSN_EXPORT IAlfMap* AlfMap::clone()
  1065     {
  1065     {
  1066     try
  1066     try
  1067         {
  1067         {
  1068         ALF_PERF_START( perfdata, "AlfContainer-Clone-Cloning Map")
  1068         //ALF_PERF_START( perfdata, "AlfContainer-Clone-Cloning Map")
  1069         auto_ptr<AlfMap> clone( new(EMM) AlfMap() );
  1069         auto_ptr<AlfMap> clone( new(EMM) AlfMap() );
  1070         auto_ptr<MapItem> cloneItem;
  1070         auto_ptr<MapItem> cloneItem;
  1071 
  1071 
  1072         for (int i = 0; i < mMapDataImpl->mArray.count(); ++i)
  1072         for (int i = 0; i < mMapDataImpl->mArray.count(); ++i)
  1073             {
  1073             {
  1115 
  1115 
  1116             clone->mMapDataImpl->mArray.resize(clone->mMapDataImpl->mArray.count()+1);
  1116             clone->mMapDataImpl->mArray.resize(clone->mMapDataImpl->mArray.count()+1);
  1117             clone->mMapDataImpl->mArray.insert(clone->mMapDataImpl->mArray.count(),cloneItem.get() );
  1117             clone->mMapDataImpl->mArray.insert(clone->mMapDataImpl->mArray.count(),cloneItem.get() );
  1118             cloneItem.release();
  1118             cloneItem.release();
  1119             }
  1119             }
  1120         ALF_PERF_STOP( perfdata, "AlfContainer-Clone-Cloning Map")
  1120         //ALF_PERF_STOP( perfdata, "AlfContainer-Clone-Cloning Map")
  1121 
  1121 
  1122         return clone.release();
  1122         return clone.release();
  1123         }
  1123         }
  1124     catch(...)
  1124     catch(...)
  1125         {
  1125         {