From 2bbf21aaded0c0623ee802e746dbf6b11d58d396 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 20 Jan 2017 13:37:37 +0200 Subject: use rtl::Reference in DocumentHolder instead of manual acquire/release Change-Id: Id795dca5ff9e392fa2649f4721a73ce3ffd6de2c --- embeddedobj/source/general/docholder.cxx | 19 ++++++++----------- embeddedobj/source/inc/docholder.hxx | 3 ++- 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'embeddedobj') diff --git a/embeddedobj/source/general/docholder.cxx b/embeddedobj/source/general/docholder.cxx index d465c215356c..506ec44b6a4b 100644 --- a/embeddedobj/source/general/docholder.cxx +++ b/embeddedobj/source/general/docholder.cxx @@ -149,7 +149,6 @@ static void InsertMenu_Impl( const uno::Reference< container::XIndexContainer >& DocumentHolder::DocumentHolder( const uno::Reference< uno::XComponentContext >& xContext, OCommonEmbeddedObject* pEmbObj ) : m_pEmbedObj( pEmbObj ), - m_pInterceptor( nullptr ), m_xContext( xContext ), m_bReadOnly( false ), m_bWaitForClose( false ), @@ -200,10 +199,10 @@ DocumentHolder::~DocumentHolder() } catch( const uno::Exception& ) {} } - if ( m_pInterceptor ) + if ( m_xInterceptor.is() ) { - m_pInterceptor->DisconnectDocHolder(); - m_pInterceptor->release(); + m_xInterceptor->DisconnectDocHolder(); + m_xInterceptor.clear(); } if ( !m_bDesktopTerminated ) @@ -837,17 +836,15 @@ uno::Reference< frame::XFrame > const & DocumentHolder::GetDocFrame() uno::Reference< frame::XDispatchProviderInterception > xInterception( m_xFrame, uno::UNO_QUERY ); if ( xInterception.is() ) { - if ( m_pInterceptor ) + if ( m_xInterceptor.is() ) { - m_pInterceptor->DisconnectDocHolder(); - m_pInterceptor->release(); - m_pInterceptor = nullptr; + m_xInterceptor->DisconnectDocHolder(); + m_xInterceptor.clear(); } - m_pInterceptor = new Interceptor( this ); - m_pInterceptor->acquire(); + m_xInterceptor = new Interceptor( this ); - xInterception->registerDispatchProviderInterceptor( m_pInterceptor ); + xInterception->registerDispatchProviderInterceptor( m_xInterceptor.get() ); // register interceptor from outside if ( m_xOutplaceInterceptor.is() ) diff --git a/embeddedobj/source/inc/docholder.hxx b/embeddedobj/source/inc/docholder.hxx index 7e8ca8f63ae1..048680cda5bf 100644 --- a/embeddedobj/source/inc/docholder.hxx +++ b/embeddedobj/source/inc/docholder.hxx @@ -36,6 +36,7 @@ #include #include #include +#include class OCommonEmbeddedObject; class Interceptor; @@ -53,7 +54,7 @@ private: OCommonEmbeddedObject* m_pEmbedObj; - Interceptor* m_pInterceptor; + rtl::Reference m_xInterceptor; css::uno::Reference< css::frame::XDispatchProviderInterceptor > m_xOutplaceInterceptor; css::uno::Reference< css::uno::XComponentContext > m_xContext; -- cgit