diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-19 10:53:12 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-19 12:01:29 +0100 |
commit | ef8de8d202deb92a57b52f4e48a4de77cf6d8b34 (patch) | |
tree | 85dade4f9b6cb0728490dde95c709721c934f888 /dbaccess | |
parent | 7430c6e4419ecefbc26b3b97709f5b61da3f8971 (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.cxx | 30 |
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 ); } } } |