summaryrefslogtreecommitdiff
path: root/embeddedobj
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2021-03-19 14:44:16 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-03-20 09:30:32 +0100
commit3e12b2fb64350938a3efe3252e84f62aa608356e (patch)
treeed3d5d4693db50099cfc1b9eb09530c2d4a554d3 /embeddedobj
parent8a6887717f4f667ff3621e98379e62e0d57a4a3a (diff)
use unique_ptr in OCommonEmbeddedObject
Change-Id: I2258838cbbe242dbe31500ecd6f29c315a335b71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112743 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'embeddedobj')
-rw-r--r--embeddedobj/source/commonembedding/miscobj.cxx30
-rw-r--r--embeddedobj/source/inc/commonembobj.hxx3
2 files changed, 15 insertions, 18 deletions
diff --git a/embeddedobj/source/commonembedding/miscobj.cxx b/embeddedobj/source/commonembedding/miscobj.cxx
index c62527f84398..c30a4bc64168 100644
--- a/embeddedobj/source/commonembedding/miscobj.cxx
+++ b/embeddedobj/source/commonembedding/miscobj.cxx
@@ -41,8 +41,7 @@ using namespace ::com::sun::star;
OCommonEmbeddedObject::OCommonEmbeddedObject( const uno::Reference< uno::XComponentContext >& rxContext,
const uno::Sequence< beans::NamedValue >& aObjProps )
-: m_pInterfaceContainer( nullptr )
-, m_bReadOnly( false )
+: m_bReadOnly( false )
, m_bDisposed( false )
, m_bClosed( false )
, m_nObjectState( -1 )
@@ -67,8 +66,7 @@ OCommonEmbeddedObject::OCommonEmbeddedObject(
const uno::Sequence< beans::NamedValue >& aObjProps,
const uno::Sequence< beans::PropertyValue >& aMediaDescr,
const uno::Sequence< beans::PropertyValue >& aObjectDescr )
-: m_pInterfaceContainer( nullptr )
-, m_bReadOnly( false )
+: m_bReadOnly( false )
, m_bDisposed( false )
, m_bClosed( false )
, m_nObjectState( embed::EmbedStates::LOADED )
@@ -242,17 +240,14 @@ OCommonEmbeddedObject::~OCommonEmbeddedObject()
return;
osl_atomic_increment(&m_refCount);
- try {
- lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
-
- if ( m_pInterfaceContainer )
- {
+ if ( m_pInterfaceContainer )
+ {
+ try {
+ lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
m_pInterfaceContainer->disposeAndClear( aSource );
-
- delete m_pInterfaceContainer;
- m_pInterfaceContainer = nullptr;
- }
- } catch( const uno::Exception& ) {}
+ } catch( const uno::Exception& ) {}
+ m_pInterfaceContainer.reset();
+ }
try {
if ( m_xDocHolder.is() )
@@ -429,7 +424,7 @@ void SAL_CALL OCommonEmbeddedObject::addStateChangeListener( const uno::Referenc
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer = new ::cppu::OMultiTypeInterfaceContainerHelper( m_aMutex );
+ m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper( m_aMutex ));
m_pInterfaceContainer->addInterface( cppu::UnoType<embed::XStateChangeListener>::get(),
xListener );
@@ -494,6 +489,7 @@ void SAL_CALL OCommonEmbeddedObject::close( sal_Bool bDeliverOwnership )
}
m_pInterfaceContainer->disposeAndClear( aSource );
+ m_pInterfaceContainer.reset();
}
m_bDisposed = true; // the object is disposed now for outside
@@ -548,7 +544,7 @@ void SAL_CALL OCommonEmbeddedObject::addCloseListener( const uno::Reference< uti
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer = new ::cppu::OMultiTypeInterfaceContainerHelper(m_aMutex);
+ m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper(m_aMutex));
m_pInterfaceContainer->addInterface( cppu::UnoType<util::XCloseListener>::get(), xListener );
}
@@ -570,7 +566,7 @@ void SAL_CALL OCommonEmbeddedObject::addEventListener( const uno::Reference< doc
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer = new ::cppu::OMultiTypeInterfaceContainerHelper(m_aMutex);
+ m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper(m_aMutex));
m_pInterfaceContainer->addInterface( cppu::UnoType<document::XEventListener>::get(), xListener );
}
diff --git a/embeddedobj/source/inc/commonembobj.hxx b/embeddedobj/source/inc/commonembobj.hxx
index 2294b0d7e915..e28b3654d1e7 100644
--- a/embeddedobj/source/inc/commonembobj.hxx
+++ b/embeddedobj/source/inc/commonembobj.hxx
@@ -35,6 +35,7 @@
#include <cppuhelper/weak.hxx>
#include <rtl/ref.hxx>
#include <map>
+#include <memory>
namespace com::sun::star {
namespace embed {
@@ -84,7 +85,7 @@ protected:
rtl::Reference<DocumentHolder> m_xDocHolder;
- ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
+ std::unique_ptr<::cppu::OMultiTypeInterfaceContainerHelper> m_pInterfaceContainer;
bool m_bReadOnly;