From 8369a21642c3f7abd3b3784ee1a27b5cc02562e0 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Tue, 27 Nov 2012 14:11:30 -0500 Subject: Use std::vector over c-style pointer array. Change-Id: I91ab1fb269070deb8389cf4e8473a223c1bbca1d --- svtools/inc/svtools/treelistbox.hxx | 2 +- svtools/inc/svtools/viewdataentry.hxx | 11 ++++++++--- svtools/source/contnr/treelistbox.cxx | 8 +++----- svtools/source/contnr/viewdataentry.cxx | 17 +++++++++++++++-- 4 files changed, 27 insertions(+), 11 deletions(-) (limited to 'svtools') diff --git a/svtools/inc/svtools/treelistbox.hxx b/svtools/inc/svtools/treelistbox.hxx index 0aa4177bbd30..1a591fd5ad76 100644 --- a/svtools/inc/svtools/treelistbox.hxx +++ b/svtools/inc/svtools/treelistbox.hxx @@ -145,7 +145,7 @@ public: const Size& GetSize(const SvTreeListBox* pView, const SvTreeListEntry* pEntry) const; const Size& GetSize(const SvViewDataEntry* pData, sal_uInt16 nItemPos) const { - const SvViewDataItem* pIData = pData->pItemData + nItemPos; + const SvViewDataItem* pIData = pData->GetItem(nItemPos); return pIData->maSize; } diff --git a/svtools/inc/svtools/viewdataentry.hxx b/svtools/inc/svtools/viewdataentry.hxx index 4e14bc50faab..fa1969e1c24d 100644 --- a/svtools/inc/svtools/viewdataentry.hxx +++ b/svtools/inc/svtools/viewdataentry.hxx @@ -24,6 +24,8 @@ #include "tools/solar.h" #include "tools/gen.hxx" +#include + // Entryflags that are attached to the View #define SVLISTENTRYFLAG_SELECTED 0x0001 #define SVLISTENTRYFLAG_EXPANDED 0x0002 @@ -65,12 +67,15 @@ public: // changed (because it's an array) class SvViewDataEntry : public SvViewData { + std::vector maItems; public: - SvViewDataItem* pItemData; // An array of SvViewDataItems - sal_uInt16 nItmCnt; // Item count for delete operator - SvViewDataEntry(); virtual ~SvViewDataEntry(); + + void Init(size_t nSize); + + const SvViewDataItem* GetItem(size_t nPos) const; + SvViewDataItem* GetItem(size_t nPos); }; #endif diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index f7fe4d8f42bc..296a036c2009 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -947,9 +947,8 @@ const SvViewDataItem* SvTreeListBox::GetViewDataItem(const SvTreeListEntry* pEnt { const SvViewDataEntry* pEntryData = (const SvViewDataEntry*)SvListView::GetViewData(pEntry); DBG_ASSERT(pEntryData,"Entry not in View"); - DBG_ASSERT(pEntryData->pItemData,"No ItemData"); sal_uInt16 nItemPos = pEntry->GetPos(pItem); - return (pEntryData->pItemData + nItemPos); + return pEntryData->GetItem(nItemPos); } SvViewData* SvTreeListBox::CreateViewData( SvTreeListEntry* ) @@ -965,14 +964,13 @@ void SvTreeListBox::InitViewData( SvViewData* pData, SvTreeListEntry* pEntry ) SvTreeListEntry* pInhEntry = (SvTreeListEntry*)pEntry; SvViewDataEntry* pEntryData = (SvViewDataEntry*)pData; - pEntryData->pItemData = new SvViewDataItem[ pInhEntry->ItemCount() ]; - SvViewDataItem* pItemData = pEntryData->pItemData; - pEntryData->nItmCnt = pInhEntry->ItemCount(); // number of items to delete + pEntryData->Init(pInhEntry->ItemCount()); sal_uInt16 nCount = pInhEntry->ItemCount(); sal_uInt16 nCurPos = 0; while( nCurPos < nCount ) { SvLBoxItem* pItem = pInhEntry->GetItem( nCurPos ); + SvViewDataItem* pItemData = pEntryData->GetItem(nCurPos); pItem->InitViewData( this, pInhEntry, pItemData ); pItemData++; nCurPos++; diff --git a/svtools/source/contnr/viewdataentry.cxx b/svtools/source/contnr/viewdataentry.cxx index 3b35c7578d1d..0fda3dd7e594 100644 --- a/svtools/source/contnr/viewdataentry.cxx +++ b/svtools/source/contnr/viewdataentry.cxx @@ -107,13 +107,26 @@ SvViewDataEntry::SvViewDataEntry() : SvViewData() { DBG_CTOR(SvViewDataEntry,0); - pItemData = 0; } SvViewDataEntry::~SvViewDataEntry() { DBG_DTOR(SvViewDataEntry,0); - delete [] pItemData; +} + +void SvViewDataEntry::Init(size_t nSize) +{ + maItems.resize(nSize); +} + +const SvViewDataItem* SvViewDataEntry::GetItem(size_t nPos) const +{ + return &maItems[nPos]; +} + +SvViewDataItem* SvViewDataEntry::GetItem(size_t nPos) +{ + return &maItems[nPos]; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3