summaryrefslogtreecommitdiffstats
path: root/comphelper/source/container
diff options
context:
space:
mode:
Diffstat (limited to 'comphelper/source/container')
-rw-r--r--comphelper/source/container/embeddedobjectcontainer.cxx94
-rw-r--r--comphelper/source/container/enumerablemap.cxx13
-rw-r--r--comphelper/source/container/interfacecontainer2.cxx31
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 )
{