diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-08-07 18:17:03 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-08-08 17:04:03 +0200 |
commit | 9104017e1bf76857d2b9686363013e1e7c49e355 (patch) | |
tree | 949e30187049ed6d177405c8261b206a9b9088e2 /ucb | |
parent | 5e69c5fbdb44cd782080e7f4d9ad89dc48b2d1b1 (diff) |
create comphelper:OMultiTypeInterfaceContainerHelperVar2 and use it
based on OInterfaceContainerHelper2 which is considerably
faster than the original OInterfaceContainerHelper
Change-Id: Ia8cdbc5ef877a7af3d9193e1bb2faf1595c15470
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120165
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
-rw-r--r-- | ucb/source/cacher/contentresultsetwrapper.cxx | 26 | ||||
-rw-r--r-- | ucb/source/cacher/contentresultsetwrapper.hxx | 3 | ||||
-rw-r--r-- | ucb/source/core/ucbstore.cxx | 8 | ||||
-rw-r--r-- | ucb/source/core/ucbstore.hxx | 3 | ||||
-rw-r--r-- | ucb/source/sorter/sortresult.cxx | 9 | ||||
-rw-r--r-- | ucb/source/ucp/file/bc.cxx | 9 | ||||
-rw-r--r-- | ucb/source/ucp/file/filnot.cxx | 2 | ||||
-rw-r--r-- | ucb/source/ucp/file/filnot.hxx | 2 |
8 files changed, 32 insertions, 30 deletions
diff --git a/ucb/source/cacher/contentresultsetwrapper.cxx b/ucb/source/cacher/contentresultsetwrapper.cxx index c680cbc68080..0b1175e324f0 100644 --- a/ucb/source/cacher/contentresultsetwrapper.cxx +++ b/ucb/source/cacher/contentresultsetwrapper.cxx @@ -181,11 +181,11 @@ void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( const Property } // Notify listeners interested especially in the changed property. - OInterfaceContainerHelper* pContainer = + OInterfaceContainerHelper2* pContainer = m_pPropertyChangeListeners->getContainer( rEvt.PropertyName ); if( pContainer ) { - OInterfaceIteratorHelper aIter( *pContainer ); + OInterfaceIteratorHelper2 aIter( *pContainer ); while( aIter.hasMoreElements() ) { static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt ); @@ -196,7 +196,7 @@ void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( const Property pContainer = m_pPropertyChangeListeners->getContainer( OUString() ); if( pContainer ) { - OInterfaceIteratorHelper aIter( *pContainer ); + OInterfaceIteratorHelper2 aIter( *pContainer ); while( aIter.hasMoreElements() ) { static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt ); @@ -213,11 +213,11 @@ void ContentResultSetWrapper::impl_notifyVetoableChangeListeners( const Property } // Notify listeners interested especially in the changed property. - OInterfaceContainerHelper* pContainer = + OInterfaceContainerHelper2* pContainer = m_pVetoableChangeListeners->getContainer( rEvt.PropertyName ); if( pContainer ) { - OInterfaceIteratorHelper aIter( *pContainer ); + OInterfaceIteratorHelper2 aIter( *pContainer ); while( aIter.hasMoreElements() ) { static_cast< XVetoableChangeListener* >( aIter.next() )->vetoableChange( rEvt ); @@ -228,7 +228,7 @@ void ContentResultSetWrapper::impl_notifyVetoableChangeListeners( const Property pContainer = m_pVetoableChangeListeners->getContainer( OUString() ); if( pContainer ) { - OInterfaceIteratorHelper aIter( *pContainer ); + OInterfaceIteratorHelper2 aIter( *pContainer ); while( aIter.hasMoreElements() ) { static_cast< XVetoableChangeListener* >( aIter.next() )->vetoableChange( rEvt ); @@ -524,8 +524,7 @@ void SAL_CALL ContentResultSetWrapper::addPropertyChangeListener( const OUString } impl_getPropertyChangeListenerContainer(); - bool bNeedRegister = !m_pPropertyChangeListeners-> - getContainedTypes().hasElements(); + bool bNeedRegister = !m_pPropertyChangeListeners->hasContainedTypes(); m_pPropertyChangeListeners->addInterface( aPropertyName, xListener ); if( !bNeedRegister ) return; @@ -569,8 +568,7 @@ void SAL_CALL ContentResultSetWrapper::addVetoableChangeListener( const OUString } impl_getVetoableChangeListenerContainer(); - bool bNeedRegister = !m_pVetoableChangeListeners-> - getContainedTypes().hasElements(); + bool bNeedRegister = !m_pVetoableChangeListeners->hasContainedTypes(); m_pVetoableChangeListeners->addInterface( rPropertyName, xListener ); if( !bNeedRegister ) return; @@ -608,7 +606,7 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr if( !m_pPropertyChangeListeners ) return; } - OInterfaceContainerHelper* pContainer = + OInterfaceContainerHelper2* pContainer = m_pPropertyChangeListeners->getContainer( rPropertyName ); if( !pContainer ) @@ -626,7 +624,7 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr m_pPropertyChangeListeners->removeInterface( rPropertyName, xListener ); - if( m_pPropertyChangeListeners->getContainedTypes().hasElements() ) + if( m_pPropertyChangeListeners->hasContainedTypes() ) return; impl_init_xPropertySetOrigin(); @@ -661,7 +659,7 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr if( !m_pVetoableChangeListeners ) return; } - OInterfaceContainerHelper* pContainer = + OInterfaceContainerHelper2* pContainer = m_pVetoableChangeListeners->getContainer( rPropertyName ); if( !pContainer ) @@ -679,7 +677,7 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr m_pVetoableChangeListeners->removeInterface( rPropertyName, xListener ); - if( m_pVetoableChangeListeners->getContainedTypes().hasElements() ) + if( m_pVetoableChangeListeners->hasContainedTypes() ) return; impl_init_xPropertySetOrigin(); diff --git a/ucb/source/cacher/contentresultsetwrapper.hxx b/ucb/source/cacher/contentresultsetwrapper.hxx index abb1bd51d4c4..254ab530606d 100644 --- a/ucb/source/cacher/contentresultsetwrapper.hxx +++ b/ucb/source/cacher/contentresultsetwrapper.hxx @@ -32,6 +32,7 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include <cppuhelper/interfacecontainer.h> #include <comphelper/interfacecontainer2.hxx> +#include <comphelper/multiinterfacecontainer2.hxx> #include <memory> @@ -47,7 +48,7 @@ class ContentResultSetWrapper , public css::sdbc::XRow { protected: - typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString> + typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> PropertyChangeListenerContainer_Impl; //members diff --git a/ucb/source/core/ucbstore.cxx b/ucb/source/core/ucbstore.cxx index 924892beb8ca..223f66dc34bb 100644 --- a/ucb/source/core/ucbstore.cxx +++ b/ucb/source/core/ucbstore.cxx @@ -1901,12 +1901,12 @@ void PersistentPropertySet::notifyPropertyChangeEvent( const PropertyChangeEvent& rEvent ) const { // Get "normal" listeners for the property. - OInterfaceContainerHelper* pContainer = + OInterfaceContainerHelper2* pContainer = m_pPropertyChangeListeners->getContainer( rEvent.PropertyName ); if ( pContainer && pContainer->getLength() ) { - OInterfaceIteratorHelper aIter( *pContainer ); + OInterfaceIteratorHelper2 aIter( *pContainer ); while ( aIter.hasMoreElements() ) { // Propagate event. @@ -1915,11 +1915,11 @@ void PersistentPropertySet::notifyPropertyChangeEvent( } // Get "normal" listeners for all properties. - OInterfaceContainerHelper* pNoNameContainer = + OInterfaceContainerHelper2* pNoNameContainer = m_pPropertyChangeListeners->getContainer( OUString() ); if ( pNoNameContainer && pNoNameContainer->getLength() ) { - OInterfaceIteratorHelper aIter( *pNoNameContainer ); + OInterfaceIteratorHelper2 aIter( *pNoNameContainer ); while ( aIter.hasMoreElements() ) { // Propagate event. diff --git a/ucb/source/core/ucbstore.hxx b/ucb/source/core/ucbstore.hxx index 478d4d597d60..a7642b9a6a1b 100644 --- a/ucb/source/core/ucbstore.hxx +++ b/ucb/source/core/ucbstore.hxx @@ -34,6 +34,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <comphelper/interfacecontainer2.hxx> +#include <comphelper/multiinterfacecontainer2.hxx> #include <cppuhelper/compbase.hxx> #include <cppuhelper/basemutex.hxx> #include <unordered_map> @@ -142,7 +143,7 @@ public: class PropertySetInfo_Impl; -typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString> PropertyListeners_Impl; +typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> PropertyListeners_Impl; class PersistentPropertySet : public cppu::WeakImplHelper < css::lang::XServiceInfo, diff --git a/ucb/source/sorter/sortresult.cxx b/ucb/source/sorter/sortresult.cxx index 94e6570cb864..606ecf7264b8 100644 --- a/ucb/source/sorter/sortresult.cxx +++ b/ucb/source/sorter/sortresult.cxx @@ -28,6 +28,7 @@ #include <cppuhelper/implbase.hxx> #include <cppuhelper/interfacecontainer.hxx> #include <comphelper/interfacecontainer2.hxx> +#include <comphelper/multiinterfacecontainer2.hxx> #include <cppuhelper/supportsservice.hxx> #include <tools/diagnose_ex.h> #include <memory> @@ -93,7 +94,7 @@ public: virtual sal_Bool SAL_CALL hasPropertyByName( const OUString& Name ) override; }; -typedef OMultiTypeInterfaceContainerHelperVar<OUString> +typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> PropertyChangeListenerContainer_Impl; class PropertyChangeListeners_Impl : public PropertyChangeListenerContainer_Impl @@ -1193,11 +1194,11 @@ void SortedResultSet::PropertyChanged( const PropertyChangeEvent& rEvt ) return; // Notify listeners interested especially in the changed property. - OInterfaceContainerHelper* pPropsContainer = + OInterfaceContainerHelper2* pPropsContainer = mpPropChangeListeners->getContainer( rEvt.PropertyName ); if ( pPropsContainer ) { - OInterfaceIteratorHelper aIter( *pPropsContainer ); + OInterfaceIteratorHelper2 aIter( *pPropsContainer ); while ( aIter.hasMoreElements() ) { static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt ); @@ -1208,7 +1209,7 @@ void SortedResultSet::PropertyChanged( const PropertyChangeEvent& rEvt ) pPropsContainer = mpPropChangeListeners->getContainer( OUString() ); if ( pPropsContainer ) { - OInterfaceIteratorHelper aIter( *pPropsContainer ); + OInterfaceIteratorHelper2 aIter( *pPropsContainer ); while ( aIter.hasMoreElements() ) { static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt ); diff --git a/ucb/source/ucp/file/bc.cxx b/ucb/source/ucp/file/bc.cxx index 07c3d846a35f..b21ba9f40175 100644 --- a/ucb/source/ucp/file/bc.cxx +++ b/ucb/source/ucp/file/bc.cxx @@ -32,6 +32,7 @@ #include <com/sun/star/io/XActiveDataSink.hpp> #include <com/sun/star/ucb/NameClash.hpp> #include <comphelper/fileurl.hxx> +#include <comphelper/multiinterfacecontainer2.hxx> #include <cppuhelper/interfacecontainer.hxx> #include <cppuhelper/supportsservice.hxx> #include "filglob.hxx" @@ -53,7 +54,7 @@ using namespace com::sun::star::ucb; #define THROW_WHERE "" #endif -typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString> +typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> PropertyListeners_impl; class fileaccess::PropertyListeners @@ -1154,16 +1155,16 @@ BaseContent::cPCL() if (!m_pPropertyListener) return nullptr; - const Sequence< OUString > seqNames = m_pPropertyListener->getContainedTypes(); + const std::vector< OUString > seqNames = m_pPropertyListener->getContainedTypes(); std::unique_ptr<PropertyChangeNotifier> p; - if( seqNames.hasElements() ) + if( !seqNames.empty() ) { ListenerMap listener; for( const auto& rName : seqNames ) { - cppu::OInterfaceContainerHelper* pContainer = m_pPropertyListener->getContainer(rName); + comphelper::OInterfaceContainerHelper2* pContainer = m_pPropertyListener->getContainer(rName); if (!pContainer) continue; listener[rName] = pContainer->getElements(); diff --git a/ucb/source/ucp/file/filnot.cxx b/ucb/source/ucp/file/filnot.cxx index d1f1b830bf95..93d1d5f21f1f 100644 --- a/ucb/source/ucp/file/filnot.cxx +++ b/ucb/source/ucp/file/filnot.cxx @@ -214,7 +214,7 @@ void PropertyChangeNotifier::notifyPropertyChanged( // notify listeners for all Events - uno::Sequence< uno::Reference< uno::XInterface > > seqList = m_aListeners[ OUString() ]; + std::vector< uno::Reference< uno::XInterface > >& seqList = m_aListeners[ OUString() ]; for( const auto& rListener : std::as_const(seqList) ) { uno::Reference< beans::XPropertiesChangeListener > aListener( rListener,uno::UNO_QUERY ); diff --git a/ucb/source/ucp/file/filnot.hxx b/ucb/source/ucp/file/filnot.hxx index 76730c1ddcfa..daeffb8b11ba 100644 --- a/ucb/source/ucp/file/filnot.hxx +++ b/ucb/source/ucp/file/filnot.hxx @@ -77,7 +77,7 @@ namespace fileaccess { typedef std::unordered_map< OUString, - css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > > ListenerMap; + std::vector< css::uno::Reference< css::uno::XInterface > > > ListenerMap; class PropertyChangeNotifier { |