diff options
author | Rafael Dominguez <venccsralph@gmail.com> | 2011-06-12 15:42:34 -0430 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-06-14 23:41:39 -0400 |
commit | d905f614aaa07483dabf9957e702cf611e93df2e (patch) | |
tree | 591ae7168dc35cddcb31056712a5da80ed822523 /sc/source | |
parent | 1f5ba3ba285c40d5b3d2375ef9eebba1b105efd7 (diff) |
Replace List with std::vector<ENTRY>.
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/filter/inc/namebuff.hxx | 4 | ||||
-rw-r--r-- | sc/source/filter/lotus/tool.cxx | 57 |
2 files changed, 25 insertions, 36 deletions
diff --git a/sc/source/filter/inc/namebuff.hxx b/sc/source/filter/inc/namebuff.hxx index 303575f816d5..f1ede3537103 100644 --- a/sc/source/filter/inc/namebuff.hxx +++ b/sc/source/filter/inc/namebuff.hxx @@ -185,7 +185,7 @@ public: -class RangeNameBufferWK3 : private List +class RangeNameBufferWK3 { private: struct ENTRY @@ -208,6 +208,8 @@ private: ScTokenArray* pScTokenArray; sal_uInt16 nIntCount; + std::vector<ENTRY> maEntries; + public: RangeNameBufferWK3( void ); virtual ~RangeNameBufferWK3(); diff --git a/sc/source/filter/lotus/tool.cxx b/sc/source/filter/lotus/tool.cxx index 14304e222d14..dc267552752e 100644 --- a/sc/source/filter/lotus/tool.cxx +++ b/sc/source/filter/lotus/tool.cxx @@ -524,14 +524,6 @@ RangeNameBufferWK3::RangeNameBufferWK3( void ) RangeNameBufferWK3::~RangeNameBufferWK3() { - ENTRY* pDel = ( ENTRY* ) List::First(); - - while( pDel ) - { - delete pDel; - pDel = ( ENTRY* ) List::Next(); - } - delete pScTokenArray; } @@ -541,9 +533,7 @@ void RangeNameBufferWK3::Add( const String& rOrgName, const ScComplexRefData& rC String aScName( rOrgName ); ScfTools::ConvertToScDefinedName( aScName ); - register ENTRY* pInsert = new ENTRY( rOrgName, aScName, rCRD ); - - List::Insert( pInsert, CONTAINER_APPEND ); + ENTRY aInsert( rOrgName, aScName, rCRD ); pScTokenArray->Clear(); @@ -553,20 +543,21 @@ void RangeNameBufferWK3::Add( const String& rOrgName, const ScComplexRefData& rC if( rRef1.nCol == rRef2.nCol && rRef1.nRow == rRef2.nRow && rRef1.nTab == rRef2.nTab ) { pScTokenArray->AddSingleReference( rCRD.Ref1 ); - pInsert->bSingleRef = sal_True; + aInsert.bSingleRef = sal_True; } else { pScTokenArray->AddDoubleReference( rCRD ); - pInsert->bSingleRef = false; + aInsert.bSingleRef = false; } ScRangeData* pData = new ScRangeData( pLotusRoot->pDoc, aScName, *pScTokenArray ); - pInsert->nRelInd = nIntCount; + aInsert.nRelInd = nIntCount; pData->SetIndex( nIntCount ); nIntCount++; + maEntries.push_back( aInsert ); pLotusRoot->pScRangeName->insert( pData ); } @@ -575,16 +566,14 @@ sal_Bool RangeNameBufferWK3::FindRel( const String& rRef, sal_uInt16& rIndex ) { StringHashEntry aRef( rRef ); - ENTRY* pFind = ( ENTRY* ) List::First(); - - while( pFind ) + std::vector<ENTRY>::const_iterator pIter; + for ( pIter = maEntries.begin(); pIter != maEntries.end(); ++pIter ) { - if( aRef == pFind->aStrHashEntry ) + if ( aRef == pIter->aStrHashEntry ) { - rIndex = pFind->nRelInd; - return sal_True; + rIndex = pIter->nRelInd; + return true; } - pFind = ( ENTRY* ) List::Next(); } return false; @@ -596,47 +585,45 @@ sal_Bool RangeNameBufferWK3::FindAbs( const String& rRef, sal_uInt16& rIndex ) String aTmp( rRef ); StringHashEntry aRef( aTmp.Erase( 0, 1 ) ); // ohne '$' suchen! - ENTRY* pFind = ( ENTRY* ) List::First(); - - while( pFind ) + std::vector<ENTRY>::iterator pIter; + for ( pIter = maEntries.begin(); pIter != maEntries.end(); ++pIter ) { - if( aRef == pFind->aStrHashEntry ) + if ( aRef == pIter->aStrHashEntry ) { // eventuell neuen Range Name aufbauen - if( pFind->nAbsInd ) - rIndex = pFind->nAbsInd; + if( pIter->nAbsInd ) + rIndex = pIter->nAbsInd; else { - ScSingleRefData* pRef = &pFind->aScComplexRefDataRel.Ref1; + ScSingleRefData* pRef = &pIter->aScComplexRefDataRel.Ref1; pScTokenArray->Clear(); pRef->SetColRel( false ); pRef->SetRowRel( false ); pRef->SetTabRel( sal_True ); - if( pFind->bSingleRef ) + if( pIter->bSingleRef ) pScTokenArray->AddSingleReference( *pRef ); else { - pRef = &pFind->aScComplexRefDataRel.Ref2; + pRef = &pIter->aScComplexRefDataRel.Ref2; pRef->SetColRel( false ); pRef->SetRowRel( false ); pRef->SetTabRel( sal_True ); - pScTokenArray->AddDoubleReference( pFind->aScComplexRefDataRel ); + pScTokenArray->AddDoubleReference( pIter->aScComplexRefDataRel ); } - ScRangeData* pData = new ScRangeData( pLotusRoot->pDoc, pFind->aScAbsName, *pScTokenArray ); + ScRangeData* pData = new ScRangeData( pLotusRoot->pDoc, pIter->aScAbsName, *pScTokenArray ); - rIndex = pFind->nAbsInd = nIntCount; + rIndex = pIter->nAbsInd = nIntCount; pData->SetIndex( rIndex ); nIntCount++; pLotusRoot->pScRangeName->insert( pData ); } - return sal_True; + return true; } - pFind = ( ENTRY* ) List::Next(); } return false; |