diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-20 13:35:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-23 07:56:34 +0200 |
commit | 4f5b22b93a53c52a46ebdd5ce479086f8df20e22 (patch) | |
tree | f3c4c53f258c64485f342e0fb236744eb55da0f2 /embeddedobj/source/commonembedding/miscobj.cxx | |
parent | db0f4ecd009f34e431b895c874c34d75186b3272 (diff) |
use rtl::Reference in OCommonEmbeddedObject
instead of manual acquire/release
Change-Id: Ie641f72687a05e1cd3cf697d551f9c6d21ac4487
Diffstat (limited to 'embeddedobj/source/commonembedding/miscobj.cxx')
-rw-r--r-- | embeddedobj/source/commonembedding/miscobj.cxx | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/embeddedobj/source/commonembedding/miscobj.cxx b/embeddedobj/source/commonembedding/miscobj.cxx index fa020e92f7b2..eb29ac43eff4 100644 --- a/embeddedobj/source/commonembedding/miscobj.cxx +++ b/embeddedobj/source/commonembedding/miscobj.cxx @@ -43,8 +43,7 @@ using namespace ::com::sun::star; OCommonEmbeddedObject::OCommonEmbeddedObject( const uno::Reference< uno::XComponentContext >& rxContext, const uno::Sequence< beans::NamedValue >& aObjProps ) -: m_pDocHolder( nullptr ) -, m_pInterfaceContainer( nullptr ) +: m_pInterfaceContainer( nullptr ) , m_bReadOnly( false ) , m_bDisposed( false ) , m_bClosed( false ) @@ -70,8 +69,7 @@ OCommonEmbeddedObject::OCommonEmbeddedObject( const uno::Sequence< beans::NamedValue >& aObjProps, const uno::Sequence< beans::PropertyValue >& aMediaDescr, const uno::Sequence< beans::PropertyValue >& aObjectDescr ) -: m_pDocHolder( nullptr ) -, m_pInterfaceContainer( nullptr ) +: m_pInterfaceContainer( nullptr ) , m_bReadOnly( false ) , m_bDisposed( false ) , m_bClosed( false ) @@ -99,8 +97,7 @@ void OCommonEmbeddedObject::CommonInit_Impl( const uno::Sequence< beans::NamedVa if ( !m_xContext.is() ) throw uno::RuntimeException(); - m_pDocHolder = new DocumentHolder( m_xContext, this ); - m_pDocHolder->acquire(); + m_xDocHolder = new DocumentHolder( m_xContext, this ); // parse configuration entries // TODO/LATER: in future UI names can be also provided here @@ -256,13 +253,13 @@ void OCommonEmbeddedObject::LinkInit_Impl( CommonInit_Impl( aObjectProps ); if ( xDispatchInterceptor.is() ) - m_pDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor ); + m_xDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor ); } OCommonEmbeddedObject::~OCommonEmbeddedObject() { - if ( m_pInterfaceContainer || m_pDocHolder ) + if ( m_pInterfaceContainer || m_xDocHolder.is() ) { m_refCount++; try { @@ -278,16 +275,15 @@ OCommonEmbeddedObject::~OCommonEmbeddedObject() } catch( const uno::Exception& ) {} try { - if ( m_pDocHolder ) + if ( m_xDocHolder.is() ) { - m_pDocHolder->CloseFrame(); + m_xDocHolder->CloseFrame(); try { - m_pDocHolder->CloseDocument( true, true ); + m_xDocHolder->CloseDocument( true, true ); } catch ( const uno::Exception& ) {} - m_pDocHolder->FreeOffice(); + m_xDocHolder->FreeOffice(); - m_pDocHolder->release(); - m_pDocHolder = nullptr; + m_xDocHolder.clear(); } } catch( const uno::Exception& ) {} } @@ -449,7 +445,7 @@ uno::Reference< util::XCloseable > SAL_CALL OCommonEmbeddedObject::getComponent( static_cast< ::cppu::OWeakObject* >(this) ); } - return uno::Reference< util::XCloseable >( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); + return uno::Reference< util::XCloseable >( m_xDocHolder->GetComponent(), uno::UNO_QUERY ); } @@ -537,29 +533,27 @@ void SAL_CALL OCommonEmbeddedObject::close( sal_Bool bDeliverOwnership ) // the exception will be thrown otherwise in addition to exception the object must register itself // as termination listener and listen for document events - if ( m_pDocHolder ) + if ( m_xDocHolder.is() ) { - m_pDocHolder->CloseFrame(); + m_xDocHolder->CloseFrame(); try { - m_pDocHolder->CloseDocument( bDeliverOwnership, bDeliverOwnership ); + m_xDocHolder->CloseDocument( bDeliverOwnership, bDeliverOwnership ); } catch( const uno::Exception& ) { if ( bDeliverOwnership ) { - m_pDocHolder->release(); - m_pDocHolder = nullptr; + m_xDocHolder.clear(); m_bClosed = true; } throw; } - m_pDocHolder->FreeOffice(); + m_xDocHolder->FreeOffice(); - m_pDocHolder->release(); - m_pDocHolder = nullptr; + m_xDocHolder.clear(); } // TODO: for now the storage will be disposed by the object, but after the document |