summaryrefslogtreecommitdiff
path: root/ucb
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-02-14 15:46:27 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-02-15 06:15:51 +0000
commit9e8f06979902e5dbd6acf7ac8290ba5ece9da667 (patch)
treeb5cb3cae10b1bddd425e252419b5744ec65f4b2d /ucb
parentfd76d69adab591789e551b30324183df2874961a (diff)
no need to use unique_ptr for OMultiTypeInterfaceContainerHelperVar4
it has an empty size of two words, so it saves very little memory to use unique_ptr. Change-Id: I2958a83c41929dec3d33db27f084dafec385d74d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147014 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.cxx66
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.hxx14
-rw-r--r--ucb/source/core/ucbstore.cxx24
-rw-r--r--ucb/source/core/ucbstore.hxx2
4 files changed, 37 insertions, 69 deletions
diff --git a/ucb/source/cacher/contentresultsetwrapper.cxx b/ucb/source/cacher/contentresultsetwrapper.cxx
index 14393ff497f4..f6e7c0058a65 100644
--- a/ucb/source/cacher/contentresultsetwrapper.cxx
+++ b/ucb/source/cacher/contentresultsetwrapper.cxx
@@ -129,35 +129,18 @@ void ContentResultSetWrapper::impl_EnsureNotDisposed(std::unique_lock<std::mutex
throw DisposedException();
}
-void ContentResultSetWrapper::impl_getPropertyChangeListenerContainer(std::unique_lock<std::mutex>& /*rGuard*/)
-{
- if ( !m_pPropertyChangeListeners )
- m_pPropertyChangeListeners.reset(
- new PropertyChangeListenerContainer_Impl() );
-}
-
-void ContentResultSetWrapper::impl_getVetoableChangeListenerContainer(std::unique_lock<std::mutex>& /*rGuard*/)
-{
- if ( !m_pVetoableChangeListeners )
- m_pVetoableChangeListeners.reset(
- new VetoableChangeListenerContainer_Impl() );
-}
-
void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( std::unique_lock<std::mutex>& rGuard, const PropertyChangeEvent& rEvt )
{
- if( !m_pPropertyChangeListeners )
- return;
-
// Notify listeners interested especially in the changed property.
OInterfaceContainerHelper4<XPropertyChangeListener>* pContainer =
- m_pPropertyChangeListeners->getContainer( rGuard, rEvt.PropertyName );
+ m_aPropertyChangeListeners.getContainer( rGuard, rEvt.PropertyName );
if( pContainer )
{
pContainer->notifyEach( rGuard, &XPropertyChangeListener::propertyChange, rEvt );
}
// Notify listeners interested in all properties.
- pContainer = m_pPropertyChangeListeners->getContainer( rGuard, OUString() );
+ pContainer = m_aPropertyChangeListeners.getContainer( rGuard, OUString() );
if( pContainer )
{
pContainer->notifyEach( rGuard, &XPropertyChangeListener::propertyChange, rEvt );
@@ -166,19 +149,16 @@ void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( std::unique_lo
void ContentResultSetWrapper::impl_notifyVetoableChangeListeners( std::unique_lock<std::mutex>& rGuard, const PropertyChangeEvent& rEvt )
{
- if( !m_pVetoableChangeListeners )
- return;
-
// Notify listeners interested especially in the changed property.
OInterfaceContainerHelper4<XVetoableChangeListener>* pContainer =
- m_pVetoableChangeListeners->getContainer( rGuard, rEvt.PropertyName );
+ m_aVetoableChangeListeners.getContainer( rGuard, rEvt.PropertyName );
if( pContainer )
{
pContainer->notifyEach( rGuard, &XVetoableChangeListener::vetoableChange, rEvt );
}
// Notify listeners interested in all properties.
- pContainer = m_pVetoableChangeListeners->getContainer( rGuard, OUString() );
+ pContainer = m_aVetoableChangeListeners.getContainer( rGuard, OUString() );
if( pContainer )
{
pContainer->notifyEach( rGuard, &XVetoableChangeListener::vetoableChange, rEvt );
@@ -306,18 +286,18 @@ void SAL_CALL ContentResultSetWrapper::dispose()
m_aDisposeEventListeners.disposeAndClear( aGuard, aEvt );
}
- if( m_pPropertyChangeListeners )
+ if( m_aPropertyChangeListeners.hasContainedTypes(aGuard) )
{
EventObject aEvt;
aEvt.Source = static_cast< XPropertySet * >( this );
- m_pPropertyChangeListeners->disposeAndClear( aGuard, aEvt );
+ m_aPropertyChangeListeners.disposeAndClear( aGuard, aEvt );
}
- if( m_pVetoableChangeListeners )
+ if( m_aVetoableChangeListeners.hasContainedTypes(aGuard) )
{
EventObject aEvt;
aEvt.Source = static_cast< XPropertySet * >( this );
- m_pVetoableChangeListeners->disposeAndClear( aGuard, aEvt );
+ m_aVetoableChangeListeners.disposeAndClear( aGuard, aEvt );
}
m_bDisposed = true;
@@ -458,9 +438,8 @@ void SAL_CALL ContentResultSetWrapper::addPropertyChangeListener( const OUString
//throws UnknownPropertyException, if so
}
- impl_getPropertyChangeListenerContainer(aGuard);
- bool bNeedRegister = !m_pPropertyChangeListeners->hasContainedTypes(aGuard);
- m_pPropertyChangeListeners->addInterface( aGuard, aPropertyName, xListener );
+ bool bNeedRegister = !m_aPropertyChangeListeners.hasContainedTypes(aGuard);
+ m_aPropertyChangeListeners.addInterface( aGuard, aPropertyName, xListener );
if( !bNeedRegister )
return;
@@ -477,7 +456,7 @@ void SAL_CALL ContentResultSetWrapper::addPropertyChangeListener( const OUString
}
catch( Exception& )
{
- m_pPropertyChangeListeners->removeInterface( aGuard, aPropertyName, xListener );
+ m_aPropertyChangeListeners.removeInterface( aGuard, aPropertyName, xListener );
throw;
}
}
@@ -500,9 +479,8 @@ void SAL_CALL ContentResultSetWrapper::addVetoableChangeListener( const OUString
//throws UnknownPropertyException, if so
}
- impl_getVetoableChangeListenerContainer(aGuard);
- bool bNeedRegister = !m_pVetoableChangeListeners->hasContainedTypes(aGuard);
- m_pVetoableChangeListeners->addInterface( aGuard, rPropertyName, xListener );
+ bool bNeedRegister = !m_aVetoableChangeListeners.hasContainedTypes(aGuard);
+ m_aVetoableChangeListeners.addInterface( aGuard, rPropertyName, xListener );
if( !bNeedRegister )
return;
@@ -521,7 +499,7 @@ void SAL_CALL ContentResultSetWrapper::addVetoableChangeListener( const OUString
}
catch( Exception& )
{
- m_pVetoableChangeListeners->removeInterface( aGuard, rPropertyName, xListener );
+ m_aVetoableChangeListeners.removeInterface( aGuard, rPropertyName, xListener );
throw;
}
}
@@ -534,11 +512,11 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr
impl_EnsureNotDisposed(aGuard);
//noop, if no listener registered
- if( !m_pPropertyChangeListeners )
+ if( !m_aPropertyChangeListeners.hasContainedTypes(aGuard) )
return;
OInterfaceContainerHelper4<XPropertyChangeListener>* pContainer =
- m_pPropertyChangeListeners->getContainer( aGuard, rPropertyName );
+ m_aPropertyChangeListeners.getContainer( aGuard, rPropertyName );
if( !pContainer )
{
@@ -553,9 +531,9 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr
return; //the listener was not registered
}
- m_pPropertyChangeListeners->removeInterface( aGuard, rPropertyName, xListener );
+ m_aPropertyChangeListeners.removeInterface( aGuard, rPropertyName, xListener );
- if( m_pPropertyChangeListeners->hasContainedTypes(aGuard) )
+ if( m_aPropertyChangeListeners.hasContainedTypes(aGuard) )
return;
impl_init_xPropertySetOrigin(aGuard);
@@ -583,10 +561,10 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr
impl_EnsureNotDisposed(aGuard);
//noop, if no listener registered
- if( !m_pVetoableChangeListeners )
+ if( !m_aVetoableChangeListeners.hasContainedTypes(aGuard) )
return;
OInterfaceContainerHelper4<XVetoableChangeListener>* pContainer =
- m_pVetoableChangeListeners->getContainer( aGuard, rPropertyName );
+ m_aVetoableChangeListeners.getContainer( aGuard, rPropertyName );
if( !pContainer )
{
@@ -601,9 +579,9 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr
return; //the listener was not registered
}
- m_pVetoableChangeListeners->removeInterface( aGuard, rPropertyName, xListener );
+ m_aVetoableChangeListeners.removeInterface( aGuard, rPropertyName, xListener );
- if( m_pVetoableChangeListeners->hasContainedTypes(aGuard) )
+ if( m_aVetoableChangeListeners.hasContainedTypes(aGuard) )
return;
impl_init_xPropertySetOrigin(aGuard);
diff --git a/ucb/source/cacher/contentresultsetwrapper.hxx b/ucb/source/cacher/contentresultsetwrapper.hxx
index 4c1ae370ff20..372779d6e306 100644
--- a/ucb/source/cacher/contentresultsetwrapper.hxx
+++ b/ucb/source/cacher/contentresultsetwrapper.hxx
@@ -87,20 +87,14 @@ private:
bool m_bInDispose;///In dispose call
comphelper::OInterfaceContainerHelper4<css::lang::XEventListener>
m_aDisposeEventListeners;
- std::unique_ptr<PropertyChangeListenerContainer_Impl>
- m_pPropertyChangeListeners;
- std::unique_ptr<VetoableChangeListenerContainer_Impl>
- m_pVetoableChangeListeners;
+ PropertyChangeListenerContainer_Impl
+ m_aPropertyChangeListeners;
+ VetoableChangeListenerContainer_Impl
+ m_aVetoableChangeListeners;
//methods:
private:
- void
- impl_getPropertyChangeListenerContainer(std::unique_lock<std::mutex>& rGuard);
-
- void
- impl_getVetoableChangeListenerContainer(std::unique_lock<std::mutex>& rGuard);
-
void verifyGet();
protected:
diff --git a/ucb/source/core/ucbstore.cxx b/ucb/source/core/ucbstore.cxx
index 75ec9aa0a270..7a090788f776 100644
--- a/ucb/source/core/ucbstore.cxx
+++ b/ucb/source/core/ucbstore.cxx
@@ -1067,11 +1067,11 @@ void SAL_CALL PersistentPropertySet::dispose()
m_aPropSetChangeListeners.disposeAndClear( l, aEvt );
}
- if ( m_pPropertyChangeListeners )
+ if ( m_aPropertyChangeListeners.hasContainedTypes(l) )
{
EventObject aEvt;
aEvt.Source = static_cast< XPropertySet * >( this );
- m_pPropertyChangeListeners->disposeAndClear( l, aEvt );
+ m_aPropertyChangeListeners.disposeAndClear( l, aEvt );
}
}
@@ -1165,7 +1165,7 @@ void SAL_CALL PersistentPropertySet::setPropertyValue( const OUString& aProperty
xBatch->commitChanges();
PropertyChangeEvent aEvt;
- if ( m_pPropertyChangeListeners )
+ if ( m_aPropertyChangeListeners.hasContainedTypes(aCGuard) )
{
// Obtain handle
aValueName = aFullPropName + "/Handle";
@@ -1239,10 +1239,7 @@ void SAL_CALL PersistentPropertySet::addPropertyChangeListener(
std::unique_lock aGuard(m_aMutex);
- if ( !m_pPropertyChangeListeners )
- m_pPropertyChangeListeners.reset( new PropertyListeners_Impl() );
-
- m_pPropertyChangeListeners->addInterface(aGuard, aPropertyName, xListener );
+ m_aPropertyChangeListeners.addInterface(aGuard, aPropertyName, xListener );
}
@@ -1255,9 +1252,8 @@ void SAL_CALL PersistentPropertySet::removePropertyChangeListener(
std::unique_lock aGuard(m_aMutex);
- if ( m_pPropertyChangeListeners )
- m_pPropertyChangeListeners->removeInterface(aGuard,
- aPropertyName, aListener );
+ m_aPropertyChangeListeners.removeInterface(aGuard,
+ aPropertyName, aListener );
// Note: Don't want to delete empty container here -> performance.
}
@@ -1834,7 +1830,7 @@ void SAL_CALL PersistentPropertySet::setPropertyValues(
// Commit changes.
xBatch->commitChanges();
- if ( m_pPropertyChangeListeners )
+ if ( m_aPropertyChangeListeners.hasContainedTypes(aCGuard) )
{
PropertyChangeEvent aEvt;
aEvt.Source = static_cast<OWeakObject*>(this);
@@ -1863,7 +1859,7 @@ void SAL_CALL PersistentPropertySet::setPropertyValues(
}
}
- if ( m_pPropertyChangeListeners )
+ if ( m_aPropertyChangeListeners.hasContainedTypes(aCGuard) )
{
// Notify property changes.
for (auto const& event : aEvents)
@@ -1888,7 +1884,7 @@ void PersistentPropertySet::notifyPropertyChangeEvent(
{
// Get "normal" listeners for the property.
OInterfaceContainerHelper4<XPropertyChangeListener>* pContainer =
- m_pPropertyChangeListeners->getContainer( rGuard, rEvent.PropertyName );
+ m_aPropertyChangeListeners.getContainer( rGuard, rEvent.PropertyName );
if ( pContainer && pContainer->getLength(rGuard) )
{
pContainer->notifyEach( rGuard, &XPropertyChangeListener::propertyChange, rEvent );
@@ -1896,7 +1892,7 @@ void PersistentPropertySet::notifyPropertyChangeEvent(
// Get "normal" listeners for all properties.
OInterfaceContainerHelper4<XPropertyChangeListener>* pNoNameContainer =
- m_pPropertyChangeListeners->getContainer( rGuard, OUString() );
+ m_aPropertyChangeListeners.getContainer( rGuard, OUString() );
if ( pNoNameContainer && pNoNameContainer->getLength(rGuard) )
{
pNoNameContainer->notifyEach( rGuard, &XPropertyChangeListener::propertyChange, rEvent );
diff --git a/ucb/source/core/ucbstore.hxx b/ucb/source/core/ucbstore.hxx
index 31de991246ef..63d240b5b983 100644
--- a/ucb/source/core/ucbstore.hxx
+++ b/ucb/source/core/ucbstore.hxx
@@ -165,7 +165,7 @@ class PersistentPropertySet : public cppu::WeakImplHelper <
mutable std::mutex m_aMutex;
comphelper::OInterfaceContainerHelper4<css::lang::XEventListener> m_aDisposeEventListeners;
comphelper::OInterfaceContainerHelper4<css::beans::XPropertySetInfoChangeListener> m_aPropSetChangeListeners;
- std::unique_ptr<PropertyListeners_Impl> m_pPropertyChangeListeners;
+ PropertyListeners_Impl m_aPropertyChangeListeners;
private:
void notifyPropertyChangeEvent(