diff options
author | Joseph Powers <jpowers27@cox.net> | 2011-04-20 20:59:37 -0700 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2011-04-20 21:05:04 -0700 |
commit | ad103b9a90d064f69df03a3a515acc266c267a9e (patch) | |
tree | 9382cb4299e2a412c6c8639404cfb71509f7a5c6 /idl/source/objects/slot.cxx | |
parent | 31b16308d8f1673c816e978d5db50397d6b328ea (diff) |
Remove DECLARE_LIST( SvSlotElementList, SvSlotElement* )
Passed: make distclean && make && make check
Diffstat (limited to 'idl/source/objects/slot.cxx')
-rw-r--r-- | idl/source/objects/slot.cxx | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/idl/source/objects/slot.cxx b/idl/source/objects/slot.cxx index 2f4f219c2e6c..8a35adf3dba5 100644 --- a/idl/source/objects/slot.cxx +++ b/idl/source/objects/slot.cxx @@ -936,14 +936,14 @@ void SvMetaSlot::Insert( SvSlotElementList& rList, const ByteString & rPrefix, { // get insert position through binary search in slotlist sal_uInt16 nId = (sal_uInt16) GetSlotId().GetValue(); - sal_uInt16 nListCount = (sal_uInt16) rList.Count(); + sal_uInt16 nListCount = (sal_uInt16) rList.size(); sal_uInt16 nPos; sal_uLong m; // for inner "for" loop if ( !nListCount ) nPos = 0; else if ( nListCount == 1 ) - nPos = rList.GetObject(0)->xSlot->GetSlotId().GetValue() >= nId ? 0 : 1; + nPos = rList[ 0 ]->xSlot->GetSlotId().GetValue() >= nId ? 0 : 1; else { sal_uInt16 nMid = 0, nLow = 0; @@ -953,7 +953,7 @@ void SvMetaSlot::Insert( SvSlotElementList& rList, const ByteString & rPrefix, { nMid = (nLow + nHigh) >> 1; DBG_ASSERT( nMid < nListCount, "bsearch ist buggy" ); - int nDiff = (int) nId - (int) rList.GetObject(nMid)->xSlot->GetSlotId().GetValue(); + int nDiff = (int) nId - (int) rList[ nMid ]->xSlot->GetSlotId().GetValue(); if ( nDiff < 0) { if ( nMid == 0 ) @@ -977,16 +977,25 @@ void SvMetaSlot::Insert( SvSlotElementList& rList, const ByteString & rPrefix, DBG_ASSERT( nPos <= nListCount, "nPos too large" ); DBG_ASSERT( nPos == nListCount || nId <= - (sal_uInt16) rList.GetObject(nPos)->xSlot->GetSlotId().GetValue(), + (sal_uInt16) rList[ nPos ]->xSlot->GetSlotId().GetValue(), "Successor has lower SlotId" ); DBG_ASSERT( nPos == 0 || nId > - (sal_uInt16) rList.GetObject(nPos-1)->xSlot->GetSlotId().GetValue(), + (sal_uInt16) rList[ nPos-1 ]->xSlot->GetSlotId().GetValue(), "Predecessor has higher SlotId" ); DBG_ASSERT( nPos+1 >= nListCount || nId < - (sal_uInt16) rList.GetObject(nPos+1)->xSlot->GetSlotId().GetValue(), + (sal_uInt16) rList[ nPos+1 ]->xSlot->GetSlotId().GetValue(), "Successor has lower SlotId" ); - rList.Insert( new SvSlotElement( this, rPrefix ), nPos ); + if ( nPos < rList.size() ) + { + SvSlotElementList::iterator it = rList.begin(); + std::advance( it, nPos ); + rList.insert( it, new SvSlotElement( this, rPrefix ) ); + } + else + { + rList.push_back( new SvSlotElement( this, rPrefix ) ); + } // iron out EnumSlots SvMetaTypeEnum * pEnum = NULL; @@ -1052,12 +1061,12 @@ void SvMetaSlot::Insert( SvSlotElementList& rList, const ByteString & rPrefix, pLinkedSlot = pFirstEnumSlot; // concatenate slaves among themselves - rList.Seek((sal_uLong)0); xEnumSlot = pFirstEnumSlot; + size_t i = 0; SvSlotElement *pEle; do { - pEle = rList.Next(); + pEle = ( ++i < rList.size() ) ? rList[ i ] : NULL; if ( pEle && pEle->xSlot->pLinkedSlot == this ) { xEnumSlot->pNextSlot = pEle->xSlot; @@ -1136,6 +1145,7 @@ void SvMetaSlot::WriteSlotStubs( const ByteString & rShellName, void SvMetaSlot::WriteSlot( const ByteString & rShellName, sal_uInt16 nCount, const ByteString & rSlotId, SvSlotElementList& rSlotList, + size_t nStart, const ByteString & rPrefix, SvIdlDataBase & rBase, SvStream & rOutStm ) { @@ -1192,14 +1202,17 @@ void SvMetaSlot::WriteSlot( const ByteString & rShellName, sal_uInt16 nCount, { // look for the next slot with the same StateMethod like me // the slotlist is set to the current slot - SvSlotElement * pEle = rSlotList.Next(); + size_t i = nStart; + SvSlotElement* pEle = ( ++i < rSlotList.size() ) ? rSlotList[ i ] : NULL; pNextSlot = pEle ? &pEle->xSlot : NULL; while ( pNextSlot ) { if ( !pNextSlot->pNextSlot && - pNextSlot->GetStateMethod() == GetStateMethod() ) + pNextSlot->GetStateMethod() == GetStateMethod() + ) { break; - pEle = rSlotList.Next(); + } + pEle = ( ++i < rSlotList.size() ) ? rSlotList[ i ] : NULL; pNextSlot = pEle ? &pEle->xSlot : NULL; } @@ -1207,14 +1220,15 @@ void SvMetaSlot::WriteSlot( const ByteString & rShellName, sal_uInt16 nCount, { // There is no slot behind me that has the same ExecMethod. // So I search for the first slot with it (could be myself). - pEle = rSlotList.First(); + i = 0; + pEle = rSlotList.empty() ? NULL : rSlotList[ i ]; pNextSlot = pEle ? &pEle->xSlot : NULL; while ( pNextSlot != this ) { if ( !pNextSlot->pEnumValue && pNextSlot->GetStateMethod() == GetStateMethod() ) break; - pEle = rSlotList.Next(); + pEle = ( ++i < rSlotList.size() ) ? rSlotList[ i ] : NULL; pNextSlot = pEle ? &pEle->xSlot : NULL; } } @@ -1436,6 +1450,7 @@ sal_uInt16 SvMetaSlot::WriteSlotParamArray( SvIdlDataBase & rBase, SvStream & rO sal_uInt16 SvMetaSlot::WriteSlotMap( const ByteString & rShellName, sal_uInt16 nCount, SvSlotElementList& rSlotList, + size_t nStart, const ByteString & rPrefix, SvIdlDataBase & rBase, SvStream & rOutStm ) @@ -1456,7 +1471,7 @@ sal_uInt16 SvMetaSlot::WriteSlotMap( const ByteString & rShellName, sal_uInt16 n nSCount = (sal_uInt16)pType->GetAttrCount(); } - WriteSlot( rShellName, nCount, slotId, rSlotList, rPrefix, rBase, rOutStm ); + WriteSlot( rShellName, nCount, slotId, rSlotList, nStart, rPrefix, rBase, rOutStm ); return nSCount; } |