summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-12-19 10:53:12 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-12-19 12:01:29 +0100
commitef8de8d202deb92a57b52f4e48a4de77cf6d8b34 (patch)
tree85dade4f9b6cb0728490dde95c709721c934f888 /dbaccess
parent7430c6e4419ecefbc26b3b97709f5b61da3f8971 (diff)
simplify OContentHelper::notifyPropertiesChange
Change-Id: I7b61b39d1057d4dd68887a2a0254592d8bdab33c Reviewed-on: https://gerrit.libreoffice.org/65405 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/dataaccess/ContentHelper.cxx30
1 files changed, 11 insertions, 19 deletions
diff --git a/dbaccess/source/core/dataaccess/ContentHelper.cxx b/dbaccess/source/core/dataaccess/ContentHelper.cxx
index c52d58c64ae6..9e462e97116f 100644
--- a/dbaccess/source/core/dataaccess/ContentHelper.cxx
+++ b/dbaccess/source/core/dataaccess/ContentHelper.cxx
@@ -492,8 +492,7 @@ void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent
}
}
- typedef Sequence< PropertyChangeEvent > PropertyEventSequence;
- typedef std::map< XPropertiesChangeListener*, PropertyEventSequence* > PropertiesEventListenerMap;
+ typedef std::map< XPropertiesChangeListener*, Sequence< PropertyChangeEvent > > PropertiesEventListenerMap;
PropertiesEventListenerMap aListeners;
const PropertyChangeEvent* propertyChangeEvent = evt.getConstArray();
@@ -509,39 +508,32 @@ void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent
OInterfaceIteratorHelper aIter( *pPropsContainer );
while ( aIter.hasMoreElements() )
{
- PropertyEventSequence* propertyEvents = nullptr;
+ Sequence< PropertyChangeEvent >* propertyEvents;
XPropertiesChangeListener* pListener = static_cast< XPropertiesChangeListener * >( aIter.next() );
- PropertiesEventListenerMap::const_iterator it = aListeners.find( pListener );
+ PropertiesEventListenerMap::iterator it = aListeners.find( pListener );
if ( it == aListeners.end() )
{
// Not in map - create and insert new entry.
- propertyEvents = new PropertyEventSequence( nCount );
- aListeners[ pListener ] = propertyEvents;
+ auto pair = aListeners.emplace( pListener, Sequence< PropertyChangeEvent >( nCount ));
+ propertyEvents = &pair.first->second;
}
else
- propertyEvents = (*it).second;
+ propertyEvents = &(*it).second;
- if ( propertyEvents )
- (*propertyEvents)[n] = rEvent;
+ (*propertyEvents)[n] = rEvent;
}
}
}
// Notify listeners.
- PropertiesEventListenerMap::const_iterator it = aListeners.begin();
- while ( !aListeners.empty() )
+ for (auto & rPair : aListeners)
{
- XPropertiesChangeListener* pListener = (*it).first;
- PropertyEventSequence* pSeq = (*it).second;
-
- // Remove current element.
- it = aListeners.erase( it );
+ XPropertiesChangeListener* pListener = rPair.first;
+ Sequence< PropertyChangeEvent >& rSeq = rPair.second;
// Propagate event.
- pListener->propertiesChange( *pSeq );
-
- delete pSeq;
+ pListener->propertiesChange( rSeq );
}
}
}