diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-01-31 14:34:00 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-01-31 21:38:57 -0500 |
commit | 5d24ffdcbeeed0bcc51ecff3b18bfa5ba07d6c1c (patch) | |
tree | 9c1e01ffca9046edc17369aaaa1691a2a7fa6a6d /svx/source/svdraw | |
parent | af2cf56599fd23485bf570f44f65399fad681eba (diff) |
Container to ptr_vector.
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 51 |
1 files changed, 29 insertions, 22 deletions
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<sal_uInt16>(maList.size()); +} -void SdrObjUserDataList::Clear() +const SdrObjUserData* SdrObjUserDataList::GetUserData(size_t nNum) const { - sal_uInt16 nAnz=GetUserDataCount(); - for (sal_uInt16 i=0; i<nAnz; i++) { - delete GetUserData(i); - } - aList.Clear(); + return &maList.at(nNum); } -sal_uInt16 SdrObjUserDataList::GetUserDataCount() const +SdrObjUserData* SdrObjUserDataList::GetUserData(size_t nNum) { - return sal_uInt16(aList.Count()); + return &maList.at(nNum); } -SdrObjUserData* SdrObjUserDataList::GetUserData(sal_uInt16 nNum) const +void SdrObjUserDataList::InsertUserData(SdrObjUserData* pData, size_t nPos) { - return (SdrObjUserData*)aList.GetObject(nNum); + maList.insert(maList.begin()+nPos, pData); } -void SdrObjUserDataList::InsertUserData(SdrObjUserData* pData, sal_uInt16 nPos) +void SdrObjUserDataList::AppendUserData(SdrObjUserData* pData) { - aList.Insert(pData,nPos); + maList.push_back(pData); } -void SdrObjUserDataList::DeleteUserData(sal_uInt16 nNum) +void SdrObjUserDataList::DeleteUserData(size_t nNum) { - delete (SdrObjUserData*)aList.Remove(nNum); + maList.erase(maList.begin()+nNum); } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -301,7 +300,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const for (sal_uInt16 i=0; i<nAnz; i++) { SdrObjUserData* pNeuUserData=pUserDataList->GetUserData(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."); } } |