diff options
author | Arkadiy Illarionov <qarkai@gmail.com> | 2018-11-24 23:39:59 +0300 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-11-25 12:29:05 +0100 |
commit | 260002b16f18634a7e1d10d4160378beb0cc0c5f (patch) | |
tree | 2528cb63cafa6c8e52ef1537802a737990db3445 /svl | |
parent | 159b30d92f7a17f1d77417a2ed1836ea72699a0e (diff) |
Simplify containers iterations in svgio, svl, svtools
Use range-based loop or replace with STL functions
Change-Id: I98a3e55a14c8ac00188c5003f84194c2cc6795fb
Reviewed-on: https://gerrit.libreoffice.org/63959
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/items/IndexedStyleSheets.cxx | 54 | ||||
-rw-r--r-- | svl/source/items/itempool.cxx | 3 | ||||
-rw-r--r-- | svl/source/items/itemprop.cxx | 16 | ||||
-rw-r--r-- | svl/source/items/macitem.cxx | 35 | ||||
-rw-r--r-- | svl/source/items/stylepool.cxx | 55 | ||||
-rw-r--r-- | svl/source/notify/broadcast.cxx | 16 | ||||
-rw-r--r-- | svl/source/notify/listener.cxx | 11 | ||||
-rw-r--r-- | svl/source/numbers/numfmuno.cxx | 8 | ||||
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 26 | ||||
-rw-r--r-- | svl/source/passwordcontainer/passwordcontainer.cxx | 78 | ||||
-rw-r--r-- | svl/source/passwordcontainer/syscreds.cxx | 15 | ||||
-rw-r--r-- | svl/source/svdde/ddesvr.cxx | 168 | ||||
-rw-r--r-- | svl/source/undo/undo.cxx | 37 |
13 files changed, 197 insertions, 325 deletions
diff --git a/svl/source/items/IndexedStyleSheets.cxx b/svl/source/items/IndexedStyleSheets.cxx index 28a36587c4c8..6b28873a05ba 100644 --- a/svl/source/items/IndexedStyleSheets.cxx +++ b/svl/source/items/IndexedStyleSheets.cxx @@ -71,9 +71,8 @@ IndexedStyleSheets::Reindex() } unsigned i = 0; - for (VectorType::const_iterator it = mStyleSheets.begin(); - it != mStyleSheets.end(); ++it) { - SfxStyleSheetBase* p = it->get(); + for (const auto& rxStyleSheet : mStyleSheets) { + SfxStyleSheetBase* p = rxStyleSheet.get(); Register(*p, i); ++i; } @@ -100,22 +99,15 @@ IndexedStyleSheets::RemoveStyleSheet(const rtl::Reference< SfxStyleSheetBase >& { OUString styleName = style->GetName(); std::vector<unsigned> positions = FindPositionsByName(styleName); - bool found = false; - unsigned stylePosition = 0; - for (std::vector<unsigned>::const_iterator it = positions.begin(); - it != positions.end(); ++it) { - if (mStyleSheets.at(*it) == style) { - found = true; - stylePosition = *it; - break; - } - } + auto it = std::find_if(positions.begin(), positions.end(), + [&](const unsigned pos) { return mStyleSheets.at(pos) == style; }); - if (found) { - mStyleSheets.erase(mStyleSheets.begin() + stylePosition); + if (it != positions.end()) { + mStyleSheets.erase(mStyleSheets.begin() + *it); Reindex(); + return true; } - return found; + return false; } std::vector<unsigned> @@ -152,14 +144,11 @@ IndexedStyleSheets::FindPositionsByNameAndPredicate(const OUString& name, unsigned IndexedStyleSheets::GetNumberOfStyleSheetsWithPredicate(StyleSheetPredicate& predicate) const { - unsigned r = 0; - for (VectorType::const_iterator it = mStyleSheets.begin(); it != mStyleSheets.end(); ++it) { - const SfxStyleSheetBase *ssheet = it->get(); - if (predicate.Check(*ssheet)) { - ++r; - } - } - return r; + return std::count_if(mStyleSheets.begin(), mStyleSheets.end(), + [&predicate](const rtl::Reference<SfxStyleSheetBase>& rxStyleSheet) { + const SfxStyleSheetBase *ssheet = rxStyleSheet.get(); + return predicate.Check(*ssheet); + }); } SfxStyleSheetBase* @@ -196,8 +185,8 @@ IndexedStyleSheets::FindStyleSheetPosition(const SfxStyleSheetBase& style) const void IndexedStyleSheets::Clear(StyleSheetDisposer& disposer) { - for (VectorType::iterator it = mStyleSheets.begin(); it != mStyleSheets.end(); ++it) { - disposer.Dispose(*it); + for (auto& rxStyleSheet : mStyleSheets) { + disposer.Dispose(rxStyleSheet); } mStyleSheets.clear(); mPositionsByName.clear(); @@ -212,13 +201,8 @@ IndexedStyleSheets::HasStyleSheet(const rtl::Reference< SfxStyleSheetBase >& sty { OUString styleName = style->GetName(); std::vector<unsigned> positions = FindPositionsByName(styleName); - for (std::vector<unsigned>::const_iterator it = positions.begin(); - it != positions.end(); ++it) { - if (mStyleSheets.at(*it) == style) { - return true; - } - } - return false; + return std::any_of(positions.begin(), positions.end(), + [&](const unsigned pos) { return mStyleSheets.at(pos) == style; }); } SfxStyleSheetBase* @@ -232,8 +216,8 @@ IndexedStyleSheets::GetStyleSheetByPosition(unsigned pos) void IndexedStyleSheets::ApplyToAllStyleSheets(StyleSheetCallback& callback) const { - for (VectorType::const_iterator it = mStyleSheets.begin(); it != mStyleSheets.end(); ++it) { - callback.DoIt(**it); + for (const auto& rxStyleSheet : mStyleSheets) { + callback.DoIt(*rxStyleSheet); } } diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx index df18182c768c..614db99b1791 100644 --- a/svl/source/items/itempool.cxx +++ b/svl/source/items/itempool.cxx @@ -353,9 +353,8 @@ void SfxItemPool::Free(SfxItemPool* pPool) // tell all the registered SfxItemPoolUsers that the pool is in destruction std::vector<SfxItemPoolUser*> aListCopy(pPool->pImpl->maSfxItemPoolUsers.begin(), pPool->pImpl->maSfxItemPoolUsers.end()); - for(std::vector<SfxItemPoolUser*>::const_iterator aIterator = aListCopy.begin(); aIterator != aListCopy.end(); ++aIterator) + for(SfxItemPoolUser* pSfxItemPoolUser : aListCopy) { - SfxItemPoolUser* pSfxItemPoolUser = *aIterator; DBG_ASSERT(pSfxItemPoolUser, "corrupt SfxItemPoolUser list (!)"); pSfxItemPoolUser->ObjectInDestruction(*pPool); } diff --git a/svl/source/items/itemprop.cxx b/svl/source/items/itemprop.cxx index 707504c8c0dd..c0beaf2614f4 100644 --- a/svl/source/items/itemprop.cxx +++ b/svl/source/items/itemprop.cxx @@ -86,18 +86,16 @@ uno::Sequence<beans::Property> const & SfxItemPropertyMap::getProperties() const m_pImpl->m_aPropSeq.realloc( m_pImpl->size() ); beans::Property* pPropArray = m_pImpl->m_aPropSeq.getArray(); sal_uInt32 n = 0; - SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin(); - while( aIt != m_pImpl->end() ) + for( const auto& rEntry : *m_pImpl ) //for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap ) { - const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second; - pPropArray[n].Name = (*aIt).first; + const SfxItemPropertySimpleEntry* pEntry = &rEntry.second; + pPropArray[n].Name = rEntry.first; pPropArray[n].Handle = pEntry->nWID; pPropArray[n].Type = pEntry->aType; pPropArray[n].Attributes = sal::static_int_cast< sal_Int16 >(pEntry->nFlags); n++; - ++aIt; } } @@ -143,12 +141,10 @@ PropertyEntryVector_t SfxItemPropertyMap::getPropertyEntries() const PropertyEntryVector_t aRet; aRet.reserve(m_pImpl->size()); - SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin(); - while( aIt != m_pImpl->end() ) + for( const auto& rEntry : *m_pImpl ) { - const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second; - aRet.emplace_back( (*aIt).first, * pEntry ); - ++aIt; + const SfxItemPropertySimpleEntry* pEntry = &rEntry.second; + aRet.emplace_back( rEntry.first, * pEntry ); } return aRet; } diff --git a/svl/source/items/macitem.cxx b/svl/source/items/macitem.cxx index f18a575bf2df..5cd29a0269d2 100644 --- a/svl/source/items/macitem.cxx +++ b/svl/source/items/macitem.cxx @@ -79,23 +79,16 @@ SvxMacroTableDtor& SvxMacroTableDtor::operator=( const SvxMacroTableDtor& rTbl ) bool SvxMacroTableDtor::operator==( const SvxMacroTableDtor& rOther ) const { // Count different => odd in any case - if ( aSvxMacroTable.size() != rOther.aSvxMacroTable.size() ) - return false; - // Compare single ones; the sequence matters due to performance reasons - SvxMacroTable::const_iterator it1 = aSvxMacroTable.begin(); - SvxMacroTable::const_iterator it2 = rOther.aSvxMacroTable.begin(); - for ( ; it1 != aSvxMacroTable.end(); ++it1, ++it2 ) - { - const SvxMacro& rOwnMac = it1->second; - const SvxMacro& rOtherMac = it2->second; - if ( it1->first != it2->first || - rOwnMac.GetLibName() != rOtherMac.GetLibName() || - rOwnMac.GetMacName() != rOtherMac.GetMacName() ) - return false; - } - - return true; + return std::equal(aSvxMacroTable.begin(), aSvxMacroTable.end(), + rOther.aSvxMacroTable.begin(), rOther.aSvxMacroTable.end(), + [](const SvxMacroTable::value_type& rOwnEntry, const SvxMacroTable::value_type& rOtherEntry) { + const SvxMacro& rOwnMac = rOwnEntry.second; + const SvxMacro& rOtherMac = rOtherEntry.second; + return rOwnEntry.first == rOtherEntry.first + && rOwnMac.GetLibName() == rOtherMac.GetLibName() + && rOwnMac.GetMacName() == rOtherMac.GetMacName(); + }); } void SvxMacroTableDtor::Read( SvStream& rStrm ) @@ -151,17 +144,17 @@ SvStream& SvxMacroTableDtor::Write( SvStream& rStream ) const rStream.WriteUInt16( aSvxMacroTable.size() ); - SvxMacroTable::const_iterator it = aSvxMacroTable.begin(); - while( it != aSvxMacroTable.end() && rStream.GetError() == ERRCODE_NONE ) + for( const auto& rEntry : aSvxMacroTable ) { - const SvxMacro& rMac = it->second; - rStream.WriteUInt16( static_cast<sal_uInt16>(it->first) ); + if (rStream.GetError() != ERRCODE_NONE) + break; + const SvxMacro& rMac = rEntry.second; + rStream.WriteUInt16( static_cast<sal_uInt16>(rEntry.first) ); writeByteString(rStream, rMac.GetLibName()); writeByteString(rStream, rMac.GetMacName()); if( SVX_MACROTBL_VERSION40 <= nVersion ) rStream.WriteUInt16( rMac.GetScriptType() ); - ++it; } return rStream; } diff --git a/svl/source/items/stylepool.cxx b/svl/source/items/stylepool.cxx index 46a4a726b850..faf1e756800b 100644 --- a/svl/source/items/stylepool.cxx +++ b/svl/source/items/stylepool.cxx @@ -82,15 +82,11 @@ namespace { // #i87808# std::shared_ptr<SfxItemSet> const & Node::getUsedOrLastAddedItemSet() const { - std::vector< std::shared_ptr<SfxItemSet> >::const_reverse_iterator aIter; + auto aIter = std::find_if(maItemSet.rbegin(), maItemSet.rend(), + [](const std::shared_ptr<SfxItemSet>& rxItemSet) { return rxItemSet.use_count() > 1; }); - for ( aIter = maItemSet.rbegin(); aIter != maItemSet.rend(); ++aIter ) - { - if ( (*aIter).use_count() > 1 ) - { - return *aIter; - } - } + if (aIter != maItemSet.rend()) + return *aIter; return maItemSet.back(); } @@ -104,16 +100,8 @@ namespace { { if ( bCheckUsage ) { - std::vector< std::shared_ptr<SfxItemSet> >::const_reverse_iterator aIter; - - for ( aIter = maItemSet.rbegin(); aIter != maItemSet.rend(); ++aIter ) - { - if ( (*aIter).use_count() > 1 ) - { - bHasItemSet = true; - break; - } - } + bHasItemSet = std::any_of(maItemSet.rbegin(), maItemSet.rend(), + [](const std::shared_ptr<SfxItemSet>& rxItemSet) { return rxItemSet.use_count() > 1; }); } else { @@ -208,23 +196,14 @@ namespace { // #i86923# bool Node::hasIgnorableChildren( const bool bCheckUsage ) const { - bool bHasIgnorableChildren( false ); - - auto aIter = mChildren.begin(); - while( aIter != mChildren.end() && !bHasIgnorableChildren ) - { - Node* pChild = aIter->get(); - if ( pChild->mbIsItemIgnorable ) - { - bHasIgnorableChildren = - !bCheckUsage || - ( pChild->hasItemSet( bCheckUsage /* == true */ ) || - pChild->hasIgnorableChildren( bCheckUsage /* == true */ ) ); - } - ++aIter; - } - - return bHasIgnorableChildren; + return std::any_of(mChildren.begin(), mChildren.end(), + [&bCheckUsage](const std::unique_ptr<Node>& rxChild) { + Node* pChild = rxChild.get(); + return pChild->mbIsItemIgnorable && + (!bCheckUsage || + ( pChild->hasItemSet( bCheckUsage /* == true */ ) || + pChild->hasIgnorableChildren( bCheckUsage /* == true */ ) )); + }); } const std::shared_ptr<SfxItemSet> Node::getItemSetOfIgnorableChild( @@ -233,10 +212,9 @@ namespace { DBG_ASSERT( hasIgnorableChildren( bSkipUnusedItemSets ), "<Node::getItemSetOfIgnorableChild> - node has no ignorable children" ); - auto aIter = mChildren.begin(); - while( aIter != mChildren.end() ) + for( const auto& rxChild : mChildren ) { - Node* pChild = aIter->get(); + Node* pChild = rxChild.get(); if ( pChild->mbIsItemIgnorable ) { if ( pChild->hasItemSet( bSkipUnusedItemSets ) ) @@ -252,7 +230,6 @@ namespace { } } } - ++aIter; } std::shared_ptr<SfxItemSet> pReturn; diff --git a/svl/source/notify/broadcast.cxx b/svl/source/notify/broadcast.cxx index 626a48a332e9..9a63e4b2b67b 100644 --- a/svl/source/notify/broadcast.cxx +++ b/svl/source/notify/broadcast.cxx @@ -101,14 +101,14 @@ SvtBroadcaster::~SvtBroadcaster() // listeners, with the exception of those that already asked to be removed // during their own destruction ListenersType::const_iterator dest(maDestructedListeners.begin()); - for (ListenersType::iterator it(maListeners.begin()); it != maListeners.end(); ++it) + for (auto& rpListener : maListeners) { // skip the destructed ones - while (dest != maDestructedListeners.end() && (*dest < *it)) + while (dest != maDestructedListeners.end() && (*dest < rpListener)) ++dest; - if (dest == maDestructedListeners.end() || *dest != *it) - (*it)->BroadcasterDying(*this); + if (dest == maDestructedListeners.end() || *dest != rpListener) + rpListener->BroadcasterDying(*this); } } @@ -118,14 +118,14 @@ void SvtBroadcaster::Broadcast( const SfxHint &rHint ) ListenersType::const_iterator dest(maDestructedListeners.begin()); ListenersType aListeners(maListeners); // this copy is important to avoid erasing entries while iterating - for (ListenersType::iterator it(aListeners.begin()); it != aListeners.end(); ++it) + for (auto& rpListener : aListeners) { // skip the destructed ones - while (dest != maDestructedListeners.end() && (*dest < *it)) + while (dest != maDestructedListeners.end() && (*dest < rpListener)) ++dest; - if (dest == maDestructedListeners.end() || *dest != *it) - (*it)->Notify(rHint); + if (dest == maDestructedListeners.end() || *dest != rpListener) + rpListener->Notify(rHint); } } diff --git a/svl/source/notify/listener.cxx b/svl/source/notify/listener.cxx index 6a54f6465c75..22d5508a3cef 100644 --- a/svl/source/notify/listener.cxx +++ b/svl/source/notify/listener.cxx @@ -76,11 +76,9 @@ void SvtListener::BroadcasterDying( SvtBroadcaster& rBroadcaster ) void SvtListener::EndListeningAll() { - BroadcastersType::iterator it = maBroadcasters.begin(); - BroadcastersType::const_iterator itEnd = maBroadcasters.end(); - for (; it != itEnd; ++it) + for (SvtBroadcaster* p : maBroadcasters) { - SvtBroadcaster& rBC = **it; + SvtBroadcaster& rBC = *p; rBC.Remove(this); } maBroadcasters.clear(); @@ -92,11 +90,8 @@ void SvtListener::CopyAllBroadcasters( const SvtListener& r ) EndListeningAll(); BroadcastersType aCopy(r.maBroadcasters); maBroadcasters.swap(aCopy); - BroadcastersType::iterator it = maBroadcasters.begin(); - BroadcastersType::const_iterator itEnd = maBroadcasters.end(); - for (; it != itEnd; ++it) + for (SvtBroadcaster* p : maBroadcasters) { - SvtBroadcaster* p = *it; p->Add(this); } } diff --git a/svl/source/numbers/numfmuno.cxx b/svl/source/numbers/numfmuno.cxx index f290d8cb37ec..4fa91ec9a0cd 100644 --- a/svl/source/numbers/numfmuno.cxx +++ b/svl/source/numbers/numfmuno.cxx @@ -388,9 +388,11 @@ uno::Sequence<sal_Int32> SAL_CALL SvNumberFormatsObj::queryKeys( sal_Int16 nType uno::Sequence<sal_Int32> aSeq(nCount); sal_Int32* pAry = aSeq.getArray(); sal_uInt32 i=0; - for (SvNumberFormatTable::const_iterator it = rTable.begin(); it != rTable.end(); ++it, ++i) - pAry[i] = it->first; - + for (const auto& rEntry : rTable) + { + pAry[i] = rEntry.first; + ++i; + } return aSeq; } diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index aab66e24013f..955a3a593f24 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -203,15 +203,9 @@ SvNumberFormatterRegistry_Impl::~SvNumberFormatterRegistry_Impl() void SvNumberFormatterRegistry_Impl::Remove( SvNumberFormatter const * pThis ) { - for (SvNumberFormatterList_impl::iterator it = aFormatters.begin(); - it != aFormatters.end(); ++it) - { - if ( *it == pThis ) - { - aFormatters.erase( it ); - break; - } - } + auto it = std::find(aFormatters.begin(), aFormatters.end(), pThis); + if (it != aFormatters.end()) + aFormatters.erase( it ); } void SvNumberFormatterRegistry_Impl::ConfigurationChanged( utl::ConfigurationBroadcaster*, @@ -3142,11 +3136,10 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter sal_uInt32 nCLOffset = 0; sal_uInt32 nOldKey, nOffset, nNewKey; - auto it = rTable.aFTable.begin(); - while (it != rTable.aFTable.end()) + for (const auto& rEntry : rTable.aFTable) { - SvNumberformat* pFormat = it->second.get(); - nOldKey = it->first; + SvNumberformat* pFormat = rEntry.second.get(); + nOldKey = rEntry.first; nOffset = nOldKey % SV_COUNTRY_LANGUAGE_OFFSET; // relative index if (nOffset == 0) // 1st format of CL { @@ -3198,7 +3191,6 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter (*pMergeTable)[nOldKey] = nNewKey; } } - ++it; } return pMergeTable.get(); } @@ -3212,10 +3204,10 @@ SvNumberFormatterMergeMap SvNumberFormatter::ConvertMergeTableToMap() return SvNumberFormatterMergeMap(); } SvNumberFormatterMergeMap aMap; - for (SvNumberFormatterIndexTable::const_iterator it = pMergeTable->begin(); it != pMergeTable->end(); ++it) + for (const auto& rEntry : *pMergeTable) { - sal_uInt32 nOldKey = it->first; - aMap[ nOldKey ] = it->second; + sal_uInt32 nOldKey = rEntry.first; + aMap[ nOldKey ] = rEntry.second; } ClearMergeTable(); return aMap; diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx index eb52bc98e520..38a6bfd134dc 100644 --- a/svl/source/passwordcontainer/passwordcontainer.cxx +++ b/svl/source/passwordcontainer/passwordcontainer.cxx @@ -886,20 +886,20 @@ void SAL_CALL PasswordContainer::remove( const OUString& aURL, const OUString& a if( aIter == m_aContainer.end() ) return; - for( std::vector< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); ++aNPIter ) - if( aNPIter->GetUserName() == aName ) - { - if( aNPIter->HasPasswords( PERSISTENT_RECORD ) && m_pStorageFile ) - m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName ) + auto aNPIter = std::find_if(aIter->second.begin(), aIter->second.end(), + [&aName](const NamePassRecord& rNPRecord) { return rNPRecord.GetUserName() == aName; }); - // the iterator will not be used any more so it can be removed directly - aIter->second.erase( aNPIter ); + if (aNPIter != aIter->second.end()) + { + if( aNPIter->HasPasswords( PERSISTENT_RECORD ) && m_pStorageFile ) + m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName ) - if( aIter->second.empty() ) - m_aContainer.erase( aIter ); + // the iterator will not be used any more so it can be removed directly + aIter->second.erase( aNPIter ); - return; - } + if( aIter->second.empty() ) + m_aContainer.erase( aIter ); + } } @@ -926,26 +926,26 @@ void SAL_CALL PasswordContainer::removePersistent( const OUString& aURL, const O if( aIter == m_aContainer.end() ) return; - for( std::vector< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); ++aNPIter ) - if( aNPIter->GetUserName() == aName ) - { - if( aNPIter->HasPasswords( PERSISTENT_RECORD ) ) - { - // TODO/LATER: should the password be converted to MemoryPassword? - aNPIter->RemovePasswords( PERSISTENT_RECORD ); + auto aNPIter = std::find_if(aIter->second.begin(), aIter->second.end(), + [&aName](const NamePassRecord& rNPRecord) { return rNPRecord.GetUserName() == aName; }); - if ( m_pStorageFile ) - m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName ) - } + if (aNPIter != aIter->second.end()) + { + if( aNPIter->HasPasswords( PERSISTENT_RECORD ) ) + { + // TODO/LATER: should the password be converted to MemoryPassword? + aNPIter->RemovePasswords( PERSISTENT_RECORD ); - if( !aNPIter->HasPasswords( MEMORY_RECORD ) ) - aIter->second.erase( aNPIter ); + if ( m_pStorageFile ) + m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName ) + } - if( aIter->second.empty() ) - m_aContainer.erase( aIter ); + if( !aNPIter->HasPasswords( MEMORY_RECORD ) ) + aIter->second.erase( aNPIter ); - return; - } + if( aIter->second.empty() ) + m_aContainer.erase( aIter ); + } } void SAL_CALL PasswordContainer::removeAllPersistent() @@ -990,10 +990,10 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere Sequence< UrlRecord > aResult; ::osl::MutexGuard aGuard( mMutex ); - for( PassMap::const_iterator aIter = m_aContainer.begin(); aIter != m_aContainer.end(); ++aIter ) + for( const auto& rEntry : m_aContainer ) { Sequence< UserRecord > aUsers; - for (auto const& aNP : aIter->second) + for (auto const& aNP : rEntry.second) if( aNP.HasPasswords( PERSISTENT_RECORD ) ) { sal_Int32 oldLen = aUsers.getLength(); @@ -1005,7 +1005,7 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere { sal_Int32 oldLen = aResult.getLength(); aResult.realloc( oldLen + 1 ); - aResult[ oldLen ] = UrlRecord( aIter->first, aUsers ); + aResult[ oldLen ] = UrlRecord( rEntry.first, aUsers ); } } @@ -1262,24 +1262,22 @@ void PasswordContainer::Notify() { ::osl::MutexGuard aGuard( mMutex ); - PassMap::iterator aIter; - // remove the cached persistent values in the memory - for( aIter = m_aContainer.begin(); aIter != m_aContainer.end(); ++aIter ) + for( auto& rEntry : m_aContainer ) { - for( std::vector< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); ) + for( std::vector< NamePassRecord >::iterator aNPIter = rEntry.second.begin(); aNPIter != rEntry.second.end(); ) { if( aNPIter->HasPasswords( PERSISTENT_RECORD ) ) { aNPIter->RemovePasswords( PERSISTENT_RECORD ); if ( m_pStorageFile ) - m_pStorageFile->remove( aIter->first, aNPIter->GetUserName() ); // remove record ( aURL, aName ) + m_pStorageFile->remove( rEntry.first, aNPIter->GetUserName() ); // remove record ( aURL, aName ) } if( !aNPIter->HasPasswords( MEMORY_RECORD ) ) { - aNPIter = aIter->second.erase(aNPIter); + aNPIter = rEntry.second.erase(aNPIter); } else ++aNPIter; @@ -1290,14 +1288,14 @@ void PasswordContainer::Notify() if( m_pStorageFile ) addon = m_pStorageFile->getInfo(); - for( aIter = addon.begin(); aIter != addon.end(); ++aIter ) + for( const auto& rEntry : addon ) { - PassMap::iterator aSearchIter = m_aContainer.find( aIter->first ); + PassMap::iterator aSearchIter = m_aContainer.find( rEntry.first ); if( aSearchIter != m_aContainer.end() ) - for (auto const& aNP : aIter->second) + for (auto const& aNP : rEntry.second) UpdateVector( aSearchIter->first, aSearchIter->second, aNP, false ); else - m_aContainer.insert( PairUrlRecord( aIter->first, aIter->second ) ); + m_aContainer.insert( PairUrlRecord( rEntry.first, rEntry.second ) ); } } diff --git a/svl/source/passwordcontainer/syscreds.cxx b/svl/source/passwordcontainer/syscreds.cxx index 9828f13b7c17..74ef2d0b6950 100644 --- a/svl/source/passwordcontainer/syscreds.cxx +++ b/svl/source/passwordcontainer/syscreds.cxx @@ -240,26 +240,19 @@ uno::Sequence< OUString > SysCredentialsConfig::list( bool bOnlyPersistent ) + ( bOnlyPersistent ? 0 : m_aMemContainer.size() ); uno::Sequence< OUString > aResult( nCount ); - StringSet::const_iterator it = m_aCfgContainer.begin(); - StringSet::const_iterator end = m_aCfgContainer.end(); sal_Int32 n = 0; - while ( it != end ) + for ( const auto& rItem : m_aCfgContainer ) { - aResult[ n ] = *it; - ++it; + aResult[ n ] = rItem; ++n; } if ( !bOnlyPersistent ) { - it = m_aMemContainer.begin(); - end = m_aMemContainer.end(); - - while ( it != end ) + for ( const auto& rItem : m_aMemContainer ) { - aResult[ n ] = *it; - ++it; + aResult[ n ] = rItem; ++n; } } diff --git a/svl/source/svdde/ddesvr.cxx b/svl/source/svdde/ddesvr.cxx index b9b6bcce4660..cb1fd8be147d 100644 --- a/svl/source/svdde/ddesvr.cxx +++ b/svl/source/svdde/ddesvr.cxx @@ -66,9 +66,9 @@ HDDEDATA CALLBACK DdeInternal::SvrCallback( DdeQueryStringW( pInst->hDdeInstSvr, hText1, chTopicBuf, SAL_N_ELEMENTS(chTopicBuf), CP_WINUNICODE ); - for (DdeServices::iterator aI = rAll.begin(); aI != rAll.end(); ++aI) + for (auto& rpService : rAll) { - pService = *aI; + pService = rpService; if ( !hText2 || ( *pService->pName == hText2 ) ) { OUString sTopics( pService->Topics() ); @@ -96,9 +96,9 @@ HDDEDATA CALLBACK DdeInternal::SvrCallback( auto pPairs = std::unique_ptr<HSZPAIR[]>(new HSZPAIR [nTopics + 1]); HSZPAIR* q = pPairs.get(); - for (DdeServices::iterator aI = rAll.begin(); aI != rAll.end(); ++aI) + for (auto& rpService : rAll) { - pService = *aI; + pService = rpService; if ( !hText2 || (*pService->pName == hText2 ) ) { OUString sTopics( pService->Topics() ); @@ -159,9 +159,9 @@ HDDEDATA CALLBACK DdeInternal::SvrCallback( return nullptr; } - for (DdeServices::iterator aI = rAll.begin(); aI != rAll.end(); ++aI) + for (auto& rpService : rAll) { - pService = *aI; + pService = rpService; for ( size_t i = 0, n = pService->m_vConv.size(); i < n; ++i ) { pC = pService->m_vConv[ i ].get(); @@ -176,16 +176,10 @@ found: if ( nCode == XTYP_DISCONNECT) { DisconnectTopic(*pC->pTopic, hConv); - for ( ConvList::iterator it = pService->m_vConv.begin(); - it != pService->m_vConv.end(); - ++it - ) { - if ( it->get() == pC ) - { - pService->m_vConv.erase( it ); - break; - } - } + auto it = std::find_if(pService->m_vConv.begin(), pService->m_vConv.end(), + [&pC](const std::unique_ptr<Conversation>& rxConv) { return rxConv.get() == pC; }); + if (it != pService->m_vConv.end()) + pService->m_vConv.erase( it ); return nullptr; } @@ -284,17 +278,13 @@ found: pTopic->aItems.erase(it); std::vector<DdeItem*>::iterator iter; - for( iter = pTopic->aItems.begin(); - iter != pTopic->aItems.end(); - ++iter ) + iter = std::find_if(pTopic->aItems.begin(), pTopic->aItems.end(), + [&hText2](const DdeItem* pDdeItem) { return *pDdeItem->pName == hText2; }); + if (iter != pTopic->aItems.end()) { - if( *(*iter)->pName == hText2 ) - { - // It was exchanged indeed - delete pItem; - pItem = nullptr; - break; - } + // It was exchanged indeed + delete pItem; + pItem = nullptr; } if( pItem ) @@ -342,28 +332,24 @@ found: DdeService* DdeInternal::FindService( HSZ hService ) { DdeServices& rSvc = DdeService::GetServices(); - for (DdeServices::iterator aI = rSvc.begin(); aI != rSvc.end(); ++aI) - { - DdeService* s = *aI; - if ( *s->pName == hService ) - return s; - } + auto aI = std::find_if(rSvc.begin(), rSvc.end(), + [&hService](const DdeService* s) { return *s->pName == hService; }); + if (aI != rSvc.end()) + return *aI; return nullptr; } DdeTopic* DdeInternal::FindTopic( DdeService& rService, HSZ hTopic ) { - std::vector<DdeTopic*>::iterator iter; std::vector<DdeTopic*> &rTopics = rService.aTopics; DdeInstData* pInst = ImpGetInstData(); assert(pInst); - for ( iter = rTopics.begin(); iter != rTopics.end(); ++iter ) - { - if ( *(*iter)->pName == hTopic ) - return *iter; - } + auto iter = std::find_if(rTopics.begin(), rTopics.end(), + [&hTopic](const DdeTopic* pTopic) { return *pTopic->pName == hTopic; }); + if (iter != rTopics.end()) + return *iter; return nullptr; } @@ -378,11 +364,10 @@ DdeItem* DdeInternal::FindItem( DdeTopic& rTopic, HSZ hItem ) do { // middle check loop - for ( iter = rItems.begin(); iter != rItems.end(); ++iter ) - { - if ( *(*iter)->pName == hItem ) - return *iter; - } + iter = std::find_if(rItems.begin(), rItems.end(), + [&hItem](const DdeItem* pItem) { return *pItem->pName == hItem; }); + if (iter != rItems.end()) + return *iter; bContinue = !bContinue; if( !bContinue ) break; @@ -486,31 +471,26 @@ void DdeService::AddTopic( const DdeTopic& rTopic ) void DdeService::RemoveTopic( const DdeTopic& rTopic ) { - std::vector<DdeTopic*>::iterator iter; - for ( iter = aTopics.begin(); iter != aTopics.end(); ++iter ) + auto iter = std::find_if(aTopics.begin(), aTopics.end(), + [&rTopic](const DdeTopic* pTopic) { return DdeCmpStringHandles(pTopic->pName->getHSZ(), rTopic.pName->getHSZ()) == 0; }); + if (iter != aTopics.end()) { - if ( !DdeCmpStringHandles ((*iter)->pName->getHSZ(), rTopic.pName->getHSZ() ) ) + aTopics.erase(iter); + // Delete all conversions! + // Or else we work on deleted topics! + for( size_t n = m_vConv.size(); n; ) { - aTopics.erase(iter); - // Delete all conversions! - // Or else we work on deleted topics! - for( size_t n = m_vConv.size(); n; ) - { - auto const& pC = m_vConv[ --n ]; - if( pC->pTopic == &rTopic ) - m_vConv.erase( m_vConv.begin() + n ); - } - break; + auto const& pC = m_vConv[ --n ]; + if( pC->pTopic == &rTopic ) + m_vConv.erase( m_vConv.begin() + n ); } } } bool DdeService::HasCbFormat( sal_uInt16 nFmt ) { - for ( size_t i = 0, n = aFormats.size(); i < n; ++i ) - if ( aFormats[ i ] == nFmt ) - return true; - return false; + return std::any_of(aFormats.begin(), aFormats.end(), + [nFmt](const long nFormat) { return nFormat == nFmt; }); } bool DdeService::HasFormat(SotClipboardFormatId nFmt) @@ -521,23 +501,19 @@ bool DdeService::HasFormat(SotClipboardFormatId nFmt) void DdeService::AddFormat(SotClipboardFormatId nFmt) { sal_uLong nExternalFmt = DdeData::GetExternalFormat( nFmt ); - for ( size_t i = 0, n = aFormats.size(); i < n; ++i ) - if ( static_cast<sal_uLong>(aFormats[ i ]) == nExternalFmt ) - return; + if (std::any_of(aFormats.begin(), aFormats.end(), + [nExternalFmt](const long nFormat) { return static_cast<sal_uLong>(nFormat) == nExternalFmt; })) + return; aFormats.push_back( nExternalFmt ); } void DdeService::RemoveFormat(SotClipboardFormatId nFmt) { sal_uLong nExternalFmt = DdeData::GetExternalFormat( nFmt ); - for ( DdeFormats::iterator it = aFormats.begin(); it != aFormats.end(); ++it ) - { - if ( static_cast<sal_uLong>(*it) == nExternalFmt ) - { - aFormats.erase( it ); - break; - } - } + auto it = std::find_if(aFormats.begin(), aFormats.end(), + [nExternalFmt](const long nFormat) { return static_cast<sal_uLong>(nFormat) == nExternalFmt; }); + if (it != aFormats.end()) + aFormats.erase( it ); } DdeTopic::DdeTopic( const OUString& rName ) @@ -549,11 +525,10 @@ DdeTopic::DdeTopic( const OUString& rName ) DdeTopic::~DdeTopic() { - std::vector<DdeItem*>::iterator iter; - for (iter = aItems.begin(); iter != aItems.end(); ++iter) + for (auto& rpItem : aItems) { - (*iter)->pMyTopic = nullptr; - delete *iter; + rpItem->pMyTopic = nullptr; + delete rpItem; } delete pName; @@ -593,12 +568,8 @@ void DdeTopic::InsertItem( DdeItem* pNew ) void DdeTopic::RemoveItem( const DdeItem& r ) { - std::vector<DdeItem*>::iterator iter; - for (iter = aItems.begin(); iter != aItems.end(); ++iter) - { - if ( !DdeCmpStringHandles ((*iter)->pName->getHSZ(), r.pName->getHSZ() ) ) - break; - } + auto iter = std::find_if(aItems.begin(), aItems.end(), + [&r](const DdeItem* pItem) { return DdeCmpStringHandles(pItem->pName->getHSZ(), r.pName->getHSZ()) == 0; }); if ( iter != aItems.end() ) { @@ -610,25 +581,19 @@ void DdeTopic::RemoveItem( const DdeItem& r ) void DdeTopic::NotifyClient( const OUString& rItem ) { - std::vector<DdeItem*>::iterator iter; DdeInstData* pInst = ImpGetInstData(); assert(pInst); - for ( iter = aItems.begin(); iter != aItems.end(); ++iter) - { - if ( (*iter)->GetName().equals(rItem) && (*iter)->pImpData) - { - DdePostAdvise( pInst->hDdeInstSvr, pName->getHSZ(), (*iter)->pName->getHSZ() ); - break; - } - } + auto iter = std::find_if(aItems.begin(), aItems.end(), + [&rItem](const DdeItem* pItem) { return pItem->GetName().equals(rItem) && pItem->pImpData; }); + if (iter != aItems.end()) + DdePostAdvise( pInst->hDdeInstSvr, pName->getHSZ(), (*iter)->pName->getHSZ() ); } void DdeInternal::DisconnectTopic(DdeTopic & rTopic, HCONV nId) { - std::vector<DdeItem*>::iterator iter; - for (iter = rTopic.aItems.begin(); iter != rTopic.aItems.end(); ++iter) + for (const auto& rpItem : rTopic.aItems) { - DecMonitor(*iter, nId); + DecMonitor(rpItem, nId); } } @@ -810,18 +775,17 @@ void DdeGetPutItem::AdviseLoop( bool ) OUString DdeService::SysItems() { OUString s; - std::vector<DdeTopic*>::iterator iter; - std::vector<DdeItem*>::iterator iterItem; - for ( iter = aTopics.begin(); iter != aTopics.end(); ++iter ) + for ( const auto& rpTopic : aTopics ) { - if ( (*iter)->GetName() == SZDDESYS_TOPIC ) + if ( rpTopic->GetName() == SZDDESYS_TOPIC ) { short n = 0; - for ( iterItem = (*iter)->aItems.begin(); iterItem != (*iter)->aItems.end(); ++iterItem, n++ ) + for ( const auto& rpItem : rpTopic->aItems ) { if ( n ) s += "\t"; - s += (*iterItem)->GetName(); + s += rpItem->GetName(); + n++; } s += "\r\n"; } @@ -833,14 +797,14 @@ OUString DdeService::SysItems() OUString DdeService::Topics() { OUString s; - std::vector<DdeTopic*>::iterator iter; short n = 0; - for ( iter = aTopics.begin(); iter != aTopics.end(); ++iter, n++ ) + for ( const auto& rpTopic : aTopics ) { if ( n ) s += "\t"; - s += (*iter)->GetName(); + s += rpTopic->GetName(); + n++; } s += "\r\n"; diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx index 480c85037ecf..7802985e6e1e 100644 --- a/svl/source/undo/undo.cxx +++ b/svl/source/undo/undo.cxx @@ -900,17 +900,9 @@ void SfxUndoManager::AddUndoListener( SfxUndoListener& i_listener ) void SfxUndoManager::RemoveUndoListener( SfxUndoListener& i_listener ) { UndoManagerGuard aGuard( *m_xData ); - for ( UndoListeners::iterator lookup = m_xData->aListeners.begin(); - lookup != m_xData->aListeners.end(); - ++lookup - ) - { - if ( (*lookup) == &i_listener ) - { - m_xData->aListeners.erase( lookup ); - break; - } - } + auto lookup = std::find(m_xData->aListeners.begin(), m_xData->aListeners.end(), &i_listener); + if (lookup != m_xData->aListeners.end()) + m_xData->aListeners.erase( lookup ); } /** @@ -1106,16 +1098,11 @@ void SfxUndoManager::RemoveMark( UndoStackMark const i_mark ) for ( size_t i=0; i<m_xData->pUndoArray->maUndoActions.size(); ++i ) { MarkedUndoAction& rAction = m_xData->pUndoArray->maUndoActions[i]; - for ( ::std::vector< UndoStackMark >::iterator markPos = rAction.aMarks.begin(); - markPos != rAction.aMarks.end(); - ++markPos - ) + auto markPos = std::find(rAction.aMarks.begin(), rAction.aMarks.end(), i_mark); + if (markPos != rAction.aMarks.end()) { - if ( *markPos == i_mark ) - { - rAction.aMarks.erase( markPos ); - return; - } + rAction.aMarks.erase( markPos ); + return; } } SAL_WARN("svl", "SfxUndoManager::RemoveMark: mark not found!"); @@ -1136,16 +1123,8 @@ bool SfxUndoManager::HasTopUndoActionMark( UndoStackMark const i_mark ) const MarkedUndoAction& rAction = m_xData->pUndoArray->maUndoActions[ nActionPos-1 ]; - for ( ::std::vector< UndoStackMark >::const_iterator markPos = rAction.aMarks.begin(); - markPos != rAction.aMarks.end(); - ++markPos - ) - { - if ( *markPos == i_mark ) - return true; - } - return false; + return std::find(rAction.aMarks.begin(), rAction.aMarks.end(), i_mark) != rAction.aMarks.end(); } |