summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ucb/source/ucp/file/bc.cxx46
-rw-r--r--ucb/source/ucp/file/bc.hxx8
2 files changed, 18 insertions, 36 deletions
diff --git a/ucb/source/ucp/file/bc.cxx b/ucb/source/ucp/file/bc.cxx
index 4f076002ac8c..cb669916e8c8 100644
--- a/ucb/source/ucp/file/bc.cxx
+++ b/ucb/source/ucp/file/bc.cxx
@@ -128,11 +128,6 @@ BaseContent::~BaseContent( )
m_pMyShell->deregisterNotifier( m_aUncPath,this );
}
m_pMyShell->m_pProvider->release();
-
- delete m_pDisposeEventListeners;
- delete m_pContentEventListeners;
- delete m_pPropertyListener;
- delete m_pPropertySetInfoChangeListeners;
}
@@ -182,8 +177,8 @@ BaseContent::addEventListener( const Reference< lang::XEventListener >& Listener
osl::MutexGuard aGuard( m_aMutex );
if ( ! m_pDisposeEventListeners )
- m_pDisposeEventListeners =
- new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex );
+ m_pDisposeEventListeners.reset(
+ new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex ) );
m_pDisposeEventListeners->addInterface( Listener );
}
@@ -203,27 +198,19 @@ void SAL_CALL
BaseContent::dispose()
{
lang::EventObject aEvt;
- comphelper::OInterfaceContainerHelper2* pDisposeEventListeners;
- comphelper::OInterfaceContainerHelper2* pContentEventListeners;
- comphelper::OInterfaceContainerHelper2* pPropertySetInfoChangeListeners;
- PropertyListeners* pPropertyListener;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> pDisposeEventListeners;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> pContentEventListeners;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> pPropertySetInfoChangeListeners;
+ std::unique_ptr<PropertyListeners> pPropertyListener;
{
osl::MutexGuard aGuard( m_aMutex );
aEvt.Source = static_cast< XContent* >( this );
-
- pDisposeEventListeners = m_pDisposeEventListeners;
- m_pDisposeEventListeners = nullptr;
-
- pContentEventListeners = m_pContentEventListeners;
- m_pContentEventListeners = nullptr;
-
- pPropertySetInfoChangeListeners = m_pPropertySetInfoChangeListeners;
- m_pPropertySetInfoChangeListeners = nullptr;
-
- pPropertyListener = m_pPropertyListener;
- m_pPropertyListener = nullptr;
+ pDisposeEventListeners = std::move(m_pDisposeEventListeners);
+ pContentEventListeners = std::move(m_pContentEventListeners);
+ pPropertySetInfoChangeListeners = std::move(m_pPropertySetInfoChangeListeners);
+ pPropertyListener = std::move(m_pPropertyListener);
}
if ( pDisposeEventListeners && pDisposeEventListeners->getLength() )
@@ -237,11 +224,6 @@ BaseContent::dispose()
if( pPropertySetInfoChangeListeners )
pPropertySetInfoChangeListeners->disposeAndClear( aEvt );
-
- delete pDisposeEventListeners;
- delete pContentEventListeners;
- delete pPropertyListener;
- delete pPropertySetInfoChangeListeners;
}
// XServiceInfo
@@ -422,7 +404,7 @@ BaseContent::addPropertiesChangeListener(
osl::MutexGuard aGuard( m_aMutex );
if( ! m_pPropertyListener )
- m_pPropertyListener = new PropertyListeners( m_aEventListenerMutex );
+ m_pPropertyListener.reset( new PropertyListeners( m_aEventListenerMutex ) );
if( PropertyNames.getLength() == 0 )
@@ -521,8 +503,8 @@ BaseContent::addContentEventListener(
osl::MutexGuard aGuard( m_aMutex );
if ( ! m_pContentEventListeners )
- m_pContentEventListeners =
- new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex );
+ m_pContentEventListeners.reset(
+ new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex ) );
m_pContentEventListeners->addInterface( Listener );
@@ -646,7 +628,7 @@ BaseContent::addPropertySetInfoChangeListener(
{
osl::MutexGuard aGuard( m_aMutex );
if( ! m_pPropertySetInfoChangeListeners )
- m_pPropertySetInfoChangeListeners = new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex );
+ m_pPropertySetInfoChangeListeners.reset( new comphelper::OInterfaceContainerHelper2( m_aEventListenerMutex ) );
m_pPropertySetInfoChangeListeners->addInterface( Listener );
}
diff --git a/ucb/source/ucp/file/bc.hxx b/ucb/source/ucp/file/bc.hxx
index 09ed60c34e37..34db251539ab 100644
--- a/ucb/source/ucp/file/bc.hxx
+++ b/ucb/source/ucp/file/bc.hxx
@@ -232,10 +232,10 @@ namespace fileaccess {
osl::Mutex m_aMutex;
osl::Mutex m_aEventListenerMutex;
- comphelper::OInterfaceContainerHelper2* m_pDisposeEventListeners;
- comphelper::OInterfaceContainerHelper2* m_pContentEventListeners;
- comphelper::OInterfaceContainerHelper2* m_pPropertySetInfoChangeListeners;
- PropertyListeners* m_pPropertyListener;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pDisposeEventListeners;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pContentEventListeners;
+ std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pPropertySetInfoChangeListeners;
+ std::unique_ptr<PropertyListeners> m_pPropertyListener;
// Private Methods