From 5d24ffdcbeeed0bcc51ecff3b18bfa5ba07d6c1c Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Tue, 31 Jan 2012 14:34:00 -0500 Subject: Container to ptr_vector. --- svx/inc/svx/svdobj.hxx | 16 ++++++++------ svx/source/svdraw/svdobj.cxx | 51 +++++++++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 28 deletions(-) (limited to 'svx') diff --git a/svx/inc/svx/svdobj.hxx b/svx/inc/svx/svdobj.hxx index 445ba6044313..55dabc83de93 100644 --- a/svx/inc/svx/svdobj.hxx +++ b/svx/inc/svx/svdobj.hxx @@ -47,6 +47,8 @@ #include "svx/svxdllapi.h" #include "svx/shapeproperty.hxx" +#include + //************************************************************ // Vorausdeklarationen //************************************************************ @@ -244,17 +246,19 @@ public: class SdrObjUserDataList { - Container aList; + typedef boost::ptr_vector ListType; + ListType maList; public: SdrObjUserDataList(); ~SdrObjUserDataList(); - void Clear(); - sal_uInt16 GetUserDataCount() const; - SdrObjUserData* GetUserData(sal_uInt16 nNum) const; - void InsertUserData(SdrObjUserData* pData, sal_uInt16 nPos=0xFFFF); - void DeleteUserData(sal_uInt16 nNum); + size_t GetUserDataCount() const; + const SdrObjUserData* GetUserData(size_t nNum) const; + SdrObjUserData* GetUserData(size_t nNum); + void InsertUserData(SdrObjUserData* pData, size_t nPos); + void AppendUserData(SdrObjUserData* pData); + void DeleteUserData(size_t nNum); }; //************************************************************ diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 0858a8ad3de9..57a8de52ba5d 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -217,38 +217,37 @@ XubString SdrObjUserData::GetMacroPopupComment(const SdrObjMacroHitRec& /*rRec*/ return String(); } -SdrObjUserDataList::SdrObjUserDataList() : - aList(1024,4,4) {} +SdrObjUserDataList::SdrObjUserDataList() {} +SdrObjUserDataList::~SdrObjUserDataList() {} -SdrObjUserDataList::~SdrObjUserDataList() { Clear(); } +size_t SdrObjUserDataList::GetUserDataCount() const +{ + return static_cast(maList.size()); +} -void SdrObjUserDataList::Clear() +const SdrObjUserData* SdrObjUserDataList::GetUserData(size_t nNum) const { - sal_uInt16 nAnz=GetUserDataCount(); - for (sal_uInt16 i=0; iGetUserData(i)->Clone(pObj1); if (pNeuUserData!=NULL) { - pNeuPlusData->pUserDataList->InsertUserData(pNeuUserData); + pNeuPlusData->pUserDataList->AppendUserData(pNeuUserData); } else { OSL_FAIL("SdrObjPlusData::Clone(): UserData.Clone() returns NULL."); } @@ -2673,11 +2672,19 @@ SdrObjUserData* SdrObject::GetUserData(sal_uInt16 nNum) const void SdrObject::InsertUserData(SdrObjUserData* pData, sal_uInt16 nPos) { - if (pData!=NULL) { + if (pData!=NULL) + { ImpForcePlusData(); - if (pPlusData->pUserDataList==NULL) pPlusData->pUserDataList=new SdrObjUserDataList; - pPlusData->pUserDataList->InsertUserData(pData,nPos); - } else { + if (!pPlusData->pUserDataList) + pPlusData->pUserDataList = new SdrObjUserDataList; + + if (nPos == 0xFFFF) + pPlusData->pUserDataList->AppendUserData(pData); + else + pPlusData->pUserDataList->InsertUserData(pData, nPos); + } + else + { OSL_FAIL("SdrObject::InsertUserData(): pData is NULL pointer."); } } -- cgit