summaryrefslogtreecommitdiff
path: root/embeddedobj
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-20 13:37:37 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-23 07:56:34 +0200
commit2bbf21aaded0c0623ee802e746dbf6b11d58d396 (patch)
treec50d52e7a64b21ba6f64505769c3127f6209a62b /embeddedobj
parent4f5b22b93a53c52a46ebdd5ce479086f8df20e22 (diff)
use rtl::Reference in DocumentHolder
instead of manual acquire/release Change-Id: Id795dca5ff9e392fa2649f4721a73ce3ffd6de2c
Diffstat (limited to 'embeddedobj')
-rw-r--r--embeddedobj/source/general/docholder.cxx19
-rw-r--r--embeddedobj/source/inc/docholder.hxx3
2 files changed, 10 insertions, 12 deletions
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 <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/implbase.hxx>
+#include <rtl/ref.hxx>
class OCommonEmbeddedObject;
class Interceptor;
@@ -53,7 +54,7 @@ private:
OCommonEmbeddedObject* m_pEmbedObj;
- Interceptor* m_pInterceptor;
+ rtl::Reference<Interceptor> m_xInterceptor;
css::uno::Reference< css::frame::XDispatchProviderInterceptor > m_xOutplaceInterceptor;
css::uno::Reference< css::uno::XComponentContext > m_xContext;