diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2019-04-07 11:48:47 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2019-04-07 17:53:04 +0200 |
commit | 5a824268dfdd48c00f656b767b48cd12ccbdaabb (patch) | |
tree | a25f4afd3ca49cff41fc44559aedea70c82e6c7e /embeddedobj | |
parent | a6186a678cd9f67359da885606b3c3983f6bdc74 (diff) |
Don't use resettable/clearable guard where plain guard is enough
Also use scope where possible. This allows to limit guard scope at
language level; visualises the scope clearly; and helps avoiding
errors like fixed in commit 61e4437c857854b331fa01da6f39b2b3b58a800b.
Change-Id: Ifeca96e2df8e8a0897770d9546b2536806275f41
Reviewed-on: https://gerrit.libreoffice.org/70376
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'embeddedobj')
-rw-r--r-- | embeddedobj/source/commonembedding/embedobj.cxx | 2 | ||||
-rw-r--r-- | embeddedobj/source/msole/olecomponent.cxx | 72 | ||||
-rw-r--r-- | embeddedobj/source/msole/olepersist.cxx | 6 |
3 files changed, 41 insertions, 39 deletions
diff --git a/embeddedobj/source/commonembedding/embedobj.cxx b/embeddedobj/source/commonembedding/embedobj.cxx index a3319d7d828f..98f6a3d11d2b 100644 --- a/embeddedobj/source/commonembedding/embedobj.cxx +++ b/embeddedobj/source/commonembedding/embedobj.cxx @@ -510,7 +510,7 @@ void SAL_CALL OCommonEmbeddedObject::doVerb( sal_Int32 nVerbID ) // to get locking done right in this class, but that looks like a // daunting task - ::osl::ResettableMutexGuard aGuard( m_aMutex ); + osl::ClearableMutexGuard aGuard( m_aMutex ); if ( m_bDisposed ) throw lang::DisposedException(); // TODO diff --git a/embeddedobj/source/msole/olecomponent.cxx b/embeddedobj/source/msole/olecomponent.cxx index 2fa50bd452e0..06f24c9b080c 100644 --- a/embeddedobj/source/msole/olecomponent.cxx +++ b/embeddedobj/source/msole/olecomponent.cxx @@ -460,9 +460,7 @@ OleComponent::~OleComponent() if ( m_pOleWrapClientSite || m_pImplAdviseSink || m_pInterfaceContainer || m_bOleInitialized ) { - ::osl::ClearableMutexGuard aGuard( m_aMutex ); - m_refCount++; - aGuard.clear(); + osl_atomic_increment(&m_refCount); try { Dispose(); } catch( const uno::Exception& ) {} @@ -1418,52 +1416,56 @@ void OleComponent::OnClose_Impl() void SAL_CALL OleComponent::close( sal_Bool bDeliverOwnership ) { - ::osl::ClearableMutexGuard aGuard( m_aMutex ); - if ( m_bDisposed ) - throw lang::DisposedException(); // TODO + uno::Reference< uno::XInterface > xSelfHold; + { + osl::MutexGuard aGuard(m_aMutex); + if (m_bDisposed) + throw lang::DisposedException(); // TODO - uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >( this ) ); - lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) ); + xSelfHold.set(static_cast<::cppu::OWeakObject*>(this)); + lang::EventObject aSource(static_cast<::cppu::OWeakObject*>(this)); - if ( m_pInterfaceContainer ) - { - ::cppu::OInterfaceContainerHelper* pContainer = - m_pInterfaceContainer->getContainer( cppu::UnoType<util::XCloseListener>::get()); - if ( pContainer != nullptr ) + if (m_pInterfaceContainer) { - ::cppu::OInterfaceIteratorHelper pIterator( *pContainer ); - while ( pIterator.hasMoreElements() ) + ::cppu::OInterfaceContainerHelper* pContainer + = m_pInterfaceContainer->getContainer(cppu::UnoType<util::XCloseListener>::get()); + if (pContainer != nullptr) { - try + ::cppu::OInterfaceIteratorHelper pIterator(*pContainer); + while (pIterator.hasMoreElements()) { - static_cast<util::XCloseListener*>( pIterator.next() )->queryClosing( aSource, bDeliverOwnership ); - } - catch( const uno::RuntimeException& ) - { - pIterator.remove(); + try + { + static_cast<util::XCloseListener*>(pIterator.next()) + ->queryClosing(aSource, bDeliverOwnership); + } + catch (const uno::RuntimeException&) + { + pIterator.remove(); + } } } - } - pContainer = m_pInterfaceContainer->getContainer( - cppu::UnoType<util::XCloseListener>::get()); - if ( pContainer != nullptr ) - { - ::cppu::OInterfaceIteratorHelper pCloseIterator( *pContainer ); - while ( pCloseIterator.hasMoreElements() ) + pContainer + = m_pInterfaceContainer->getContainer(cppu::UnoType<util::XCloseListener>::get()); + if (pContainer != nullptr) { - try + ::cppu::OInterfaceIteratorHelper pCloseIterator(*pContainer); + while (pCloseIterator.hasMoreElements()) { - static_cast<util::XCloseListener*>( pCloseIterator.next() )->notifyClosing( aSource ); - } - catch( const uno::RuntimeException& ) - { - pCloseIterator.remove(); + try + { + static_cast<util::XCloseListener*>(pCloseIterator.next()) + ->notifyClosing(aSource); + } + catch (const uno::RuntimeException&) + { + pCloseIterator.remove(); + } } } } } - aGuard.clear(); Dispose(); } diff --git a/embeddedobj/source/msole/olepersist.cxx b/embeddedobj/source/msole/olepersist.cxx index fddb668568b4..763ced642655 100644 --- a/embeddedobj/source/msole/olepersist.cxx +++ b/embeddedobj/source/msole/olepersist.cxx @@ -795,7 +795,7 @@ bool OleEmbeddedObject::SaveObject_Impl() bool OleEmbeddedObject::OnShowWindow_Impl( bool bShow ) { - ::osl::ResettableMutexGuard aGuard( m_aMutex ); + osl::ClearableMutexGuard aGuard(m_aMutex); bool bResult = false; @@ -1507,7 +1507,7 @@ void SAL_CALL OleEmbeddedObject::saveCompleted( sal_Bool bUseNew ) } // end wrapping related part ==================== - ::osl::ResettableMutexGuard aGuard( m_aMutex ); + osl::ClearableMutexGuard aGuard(m_aMutex); if ( m_bDisposed ) throw lang::DisposedException(); // TODO @@ -1665,7 +1665,7 @@ void SAL_CALL OleEmbeddedObject::storeOwn() // ask container to store the object, the container has to make decision // to do so or not - ::osl::ResettableMutexGuard aGuard( m_aMutex ); + osl::ClearableMutexGuard aGuard(m_aMutex); if ( m_bDisposed ) throw lang::DisposedException(); // TODO |