diff options
Diffstat (limited to 'comphelper/source/container')
-rw-r--r-- | comphelper/source/container/embeddedobjectcontainer.cxx | 94 | ||||
-rw-r--r-- | comphelper/source/container/enumerablemap.cxx | 13 | ||||
-rw-r--r-- | comphelper/source/container/interfacecontainer2.cxx | 31 |
3 files changed, 50 insertions, 88 deletions
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx index c2e61bcc6f72..ffa22966a53b 100644 --- a/comphelper/source/container/embeddedobjectcontainer.cxx +++ b/comphelper/source/container/embeddedobjectcontainer.cxx @@ -434,41 +434,37 @@ void EmbeddedObjectContainer::AddEmbeddedObject( const css::uno::Reference < css // look for object in temporary container if ( pImpl->mpTempObjectContainer ) { - EmbeddedObjectContainerNameMap::iterator aEnd = pImpl->mpTempObjectContainer->pImpl->maObjectContainer.end(); - for( EmbeddedObjectContainerNameMap::iterator aIter = pImpl->mpTempObjectContainer->pImpl->maObjectContainer.begin(); - aIter != aEnd; - ++aIter ) + auto& rObjectContainer = pImpl->mpTempObjectContainer->pImpl->maObjectContainer; + auto aIter = std::find_if(rObjectContainer.begin(), rObjectContainer.end(), + [&xObj](const EmbeddedObjectContainerNameMap::value_type& rEntry) { return rEntry.second == xObj; }); + if (aIter != rObjectContainer.end()) { - if ( aIter->second == xObj ) + // copy replacement image from temporary container (if there is any) + OUString aTempName = aIter->first; + OUString aMediaType; + uno::Reference < io::XInputStream > xStream = pImpl->mpTempObjectContainer->GetGraphicStream( xObj, &aMediaType ); + if ( xStream.is() ) { - // copy replacement image from temporary container (if there is any) - OUString aTempName = aIter->first; - OUString aMediaType; - uno::Reference < io::XInputStream > xStream = pImpl->mpTempObjectContainer->GetGraphicStream( xObj, &aMediaType ); - if ( xStream.is() ) + InsertGraphicStream( xStream, rName, aMediaType ); + xStream = nullptr; + pImpl->mpTempObjectContainer->RemoveGraphicStream( aTempName ); + } + + // remove object from storage of temporary container + uno::Reference < embed::XEmbedPersist > xPersist( xObj, uno::UNO_QUERY ); + if ( xPersist.is() ) + { + try { - InsertGraphicStream( xStream, rName, aMediaType ); - xStream = nullptr; - pImpl->mpTempObjectContainer->RemoveGraphicStream( aTempName ); + pImpl->mpTempObjectContainer->pImpl->mxStorage->removeElement( aTempName ); } - - // remove object from storage of temporary container - uno::Reference < embed::XEmbedPersist > xPersist( xObj, uno::UNO_QUERY ); - if ( xPersist.is() ) + catch (const uno::Exception&) { - try - { - pImpl->mpTempObjectContainer->pImpl->mxStorage->removeElement( aTempName ); - } - catch (const uno::Exception&) - { - } } - - // temp. container needs to forget the object - pImpl->mpTempObjectContainer->pImpl->maObjectContainer.erase( aIter ); - break; } + + // temp. container needs to forget the object + pImpl->mpTempObjectContainer->pImpl->maObjectContainer.erase( aIter ); } } } @@ -960,24 +956,18 @@ bool EmbeddedObjectContainer::RemoveEmbeddedObject( const uno::Reference < embed return false; } - bool bFound = false; - EmbeddedObjectContainerNameMap::iterator aEnd = pImpl->maObjectContainer.end(); - for( EmbeddedObjectContainerNameMap::iterator aIter = pImpl->maObjectContainer.begin(); - aIter != aEnd; - ++aIter ) + auto aIter = std::find_if(pImpl->maObjectContainer.begin(), pImpl->maObjectContainer.end(), + [&xObj](const EmbeddedObjectContainerNameMap::value_type& rEntry) { return rEntry.second == xObj; }); + if (aIter != pImpl->maObjectContainer.end()) { - if ( aIter->second == xObj ) - { - pImpl->maObjectContainer.erase( aIter ); - bFound = true; - uno::Reference < container::XChild > xChild( xObj, uno::UNO_QUERY ); - if ( xChild.is() ) - xChild->setParent( uno::Reference < uno::XInterface >() ); - break; - } + pImpl->maObjectContainer.erase( aIter ); + uno::Reference < container::XChild > xChild( xObj, uno::UNO_QUERY ); + if ( xChild.is() ) + xChild->setParent( uno::Reference < uno::XInterface >() ); } + else + SAL_WARN( "comphelper.container", "Object not found for removal!" ); - SAL_WARN_IF( !bFound,"comphelper.container", "Object not found for removal!" ); if ( xPersist.is() && bKeepToTempStorage ) // #i119941# { // remove replacement image (if there is one) @@ -1007,22 +997,12 @@ void EmbeddedObjectContainer::CloseEmbeddedObject( const uno::Reference < embed: { // disconnect the object from the container and close it if possible - bool bFound = false; - EmbeddedObjectContainerNameMap::iterator aEnd = pImpl->maObjectContainer.end(); - for( EmbeddedObjectContainerNameMap::iterator aIter = pImpl->maObjectContainer.begin(); - aIter != aEnd; - ++aIter ) + auto aIter = std::find_if(pImpl->maObjectContainer.begin(), pImpl->maObjectContainer.end(), + [&xObj](const EmbeddedObjectContainerNameMap::value_type& rEntry) { return rEntry.second == xObj; }); + if (aIter != pImpl->maObjectContainer.end()) { - if ( aIter->second == xObj ) - { - pImpl->maObjectContainer.erase( aIter ); - bFound = true; - break; - } - } + pImpl->maObjectContainer.erase( aIter ); - if ( bFound ) - { uno::Reference < ::util::XCloseable > xClose( xObj, uno::UNO_QUERY ); try { diff --git a/comphelper/source/container/enumerablemap.cxx b/comphelper/source/container/enumerablemap.cxx index eb21b1795834..f17610f13c71 100644 --- a/comphelper/source/container/enumerablemap.cxx +++ b/comphelper/source/container/enumerablemap.cxx @@ -124,16 +124,11 @@ namespace comphelper static void lcl_revokeMapModificationListener( MapData& _mapData, MapEnumerator& _listener ) { - for ( std::vector< MapEnumerator* >::iterator lookup = _mapData.m_aModListeners.begin(); - lookup != _mapData.m_aModListeners.end(); - ++lookup - ) + auto lookup = std::find(_mapData.m_aModListeners.begin(), _mapData.m_aModListeners.end(), &_listener); + if (lookup != _mapData.m_aModListeners.end()) { - if ( *lookup == &_listener ) - { - _mapData.m_aModListeners.erase( lookup ); - return; - } + _mapData.m_aModListeners.erase( lookup ); + return; } OSL_FAIL( "lcl_revokeMapModificationListener: the listener is not registered!" ); } diff --git a/comphelper/source/container/interfacecontainer2.cxx b/comphelper/source/container/interfacecontainer2.cxx index aac2e6213098..f4610d99acf4 100644 --- a/comphelper/source/container/interfacecontainer2.cxx +++ b/comphelper/source/container/interfacecontainer2.cxx @@ -210,30 +210,17 @@ sal_Int32 OInterfaceContainerHelper2::removeInterface( const Reference<XInterfac if( bIsList ) { - sal_Int32 nLen = aData.pAsVector->size(); - sal_Int32 i; - for( i = 0; i < nLen; i++ ) - { - // It is not valid to compare the pointer directly, but it's faster. - if( (*aData.pAsVector)[i].get() == rListener.get() ) - { - aData.pAsVector->erase(aData.pAsVector->begin()+i); - break; - } - } + // It is not valid to compare the pointer directly, but it's faster. + auto it = std::find_if(aData.pAsVector->begin(), aData.pAsVector->end(), + [&rListener](const css::uno::Reference<css::uno::XInterface>& rItem) { + return rItem.get() == rListener.get(); }); // interface not found, use the correct compare method - if( i == nLen ) - { - for( i = 0; i < nLen; i++ ) - { - if( (*aData.pAsVector)[i] == rListener ) - { - aData.pAsVector->erase(aData.pAsVector->begin()+i); - break; - } - } - } + if (it == aData.pAsVector->end()) + it = std::find(aData.pAsVector->begin(), aData.pAsVector->end(), rListener); + + if (it != aData.pAsVector->end()) + aData.pAsVector->erase(it); if( aData.pAsVector->size() == 1 ) { |