include/svx/xmleohlp.hxx        |    8 +++-----
 svx/source/xml/xmleohlp.cxx     |   16 ++++++++--------
 sw/source/filter/xml/wrtxml.cxx |    1 +
 sw/source/filter/xml/xmlexp.cxx |    1 +
 4 files changed, 13 insertions(+), 13 deletions(-)

New commits:
commit 7313b9ecf2285768563d82c19715d34b7c66d5ef
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Fri Dec 24 10:09:09 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Dec 26 10:25:12 2021 +0100

    use comphelper::WeakComponentImplHelper in SvXMLEmbeddedObjectHelper
    
    Change-Id: Id574f7a1ff54fae4a76bcafb011b9a80b5f35232
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127407
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/svx/xmleohlp.hxx b/include/svx/xmleohlp.hxx
index aa3c6764ebde..55682f16c51a 100644
--- a/include/svx/xmleohlp.hxx
+++ b/include/svx/xmleohlp.hxx
@@ -20,8 +20,7 @@
 #ifndef INCLUDED_SVX_XMLEOHLP_HXX
 #define INCLUDED_SVX_XMLEOHLP_HXX
 
-#include <cppuhelper/basemutex.hxx>
-#include <cppuhelper/compbase.hxx>
+#include <comphelper/compbase.hxx>
 #include <com/sun/star/document/XEmbeddedObjectResolver.hpp>
 #include <com/sun/star/container/XNameAccess.hpp>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
@@ -44,8 +43,7 @@ class OutputStorageWrapper_Impl;
 
 
 class SVXCORE_DLLPUBLIC SvXMLEmbeddedObjectHelper final :
-    public cppu::BaseMutex,
-    public cppu::WeakComponentImplHelper< 
css::document::XEmbeddedObjectResolver, css::container::XNameAccess >
+    public comphelper::WeakComponentImplHelper< 
css::document::XEmbeddedObjectResolver, css::container::XNameAccess >
 {
     OUString             maCurContainerStorageName;
 
@@ -88,7 +86,7 @@ class SVXCORE_DLLPUBLIC SvXMLEmbeddedObjectHelper final :
                                       ::comphelper::IEmbeddedHelper& 
rDocPersist,
                                       SvXMLEmbeddedObjectHelperMode 
eCreateMode );
 
-    virtual void SAL_CALL       disposing() override;
+    virtual void                disposing(std::unique_lock<std::mutex>&) 
override;
 
 public:
                                 SvXMLEmbeddedObjectHelper(
diff --git a/svx/source/xml/xmleohlp.cxx b/svx/source/xml/xmleohlp.cxx
index 0f33e96c03a1..fdb43fdd6fd2 100644
--- a/svx/source/xml/xmleohlp.cxx
+++ b/svx/source/xml/xmleohlp.cxx
@@ -27,6 +27,7 @@
 #include <com/sun/star/embed/EmbedStates.hpp>
 #include <com/sun/star/embed/Aspects.hpp>
 #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
+#include <osl/diagnose.h>
 #include <sot/storage.hxx>
 #include <tools/debug.hxx>
 #include <sal/log.hxx>
@@ -120,14 +121,12 @@ void SAL_CALL OutputStorageWrapper_Impl::closeOutput()
 }
 
 SvXMLEmbeddedObjectHelper::SvXMLEmbeddedObjectHelper() :
-    WeakComponentImplHelper< XEmbeddedObjectResolver, XNameAccess >( m_aMutex 
),
     mpDocPersist( nullptr ),
     meCreateMode( SvXMLEmbeddedObjectHelperMode::Read )
 {
 }
 
 SvXMLEmbeddedObjectHelper::SvXMLEmbeddedObjectHelper( 
::comphelper::IEmbeddedHelper& rDocPersist, SvXMLEmbeddedObjectHelperMode 
eCreateMode ) :
-    WeakComponentImplHelper< XEmbeddedObjectResolver, XNameAccess >( m_aMutex 
),
     mpDocPersist( nullptr ),
     meCreateMode( SvXMLEmbeddedObjectHelperMode::Read )
 {
@@ -138,11 +137,12 @@ SvXMLEmbeddedObjectHelper::~SvXMLEmbeddedObjectHelper()
 {
 }
 
-void SAL_CALL SvXMLEmbeddedObjectHelper::disposing()
+void SvXMLEmbeddedObjectHelper::disposing(std::unique_lock<std::mutex>&)
 {
     if( mxTempStorage.is() )
     {
         mxTempStorage->dispose();
+        mxTempStorage.clear();
     }
 }
 
@@ -546,7 +546,7 @@ rtl::Reference<SvXMLEmbeddedObjectHelper> 
SvXMLEmbeddedObjectHelper::Create(
 
 OUString SAL_CALL SvXMLEmbeddedObjectHelper::resolveEmbeddedObjectURL(const 
OUString& rURL)
 {
-    MutexGuard          aGuard( m_aMutex );
+    std::unique_lock          aGuard( m_aMutex );
 
     OUString sRet;
     try
@@ -571,7 +571,7 @@ OUString SAL_CALL 
SvXMLEmbeddedObjectHelper::resolveEmbeddedObjectURL(const OUSt
 Any SAL_CALL SvXMLEmbeddedObjectHelper::getByName(
         const OUString& rURLStr )
 {
-    MutexGuard          aGuard( m_aMutex );
+    std::unique_lock          aGuard( m_aMutex );
     Any aRet;
     if( SvXMLEmbeddedObjectHelperMode::Read == meCreateMode )
     {
@@ -672,7 +672,7 @@ Sequence< OUString > SAL_CALL 
SvXMLEmbeddedObjectHelper::getElementNames()
 
 sal_Bool SAL_CALL SvXMLEmbeddedObjectHelper::hasByName( const OUString& 
rURLStr )
 {
-    MutexGuard          aGuard( m_aMutex );
+    std::unique_lock          aGuard( m_aMutex );
     if( SvXMLEmbeddedObjectHelperMode::Read == meCreateMode )
     {
         return true;
@@ -694,7 +694,7 @@ sal_Bool SAL_CALL SvXMLEmbeddedObjectHelper::hasByName( 
const OUString& rURLStr
 // XNameAccess
 Type SAL_CALL SvXMLEmbeddedObjectHelper::getElementType()
 {
-    MutexGuard          aGuard( m_aMutex );
+    std::unique_lock          aGuard( m_aMutex );
     if( SvXMLEmbeddedObjectHelperMode::Read == meCreateMode )
         return cppu::UnoType<XOutputStream>::get();
     else
@@ -703,7 +703,7 @@ Type SAL_CALL SvXMLEmbeddedObjectHelper::getElementType()
 
 sal_Bool SAL_CALL SvXMLEmbeddedObjectHelper::hasElements()
 {
-    MutexGuard          aGuard( m_aMutex );
+    std::unique_lock          aGuard( m_aMutex );
     if( SvXMLEmbeddedObjectHelperMode::Read == meCreateMode )
     {
         return true;
diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx
index a1f9625c6936..bd7c74c98282 100644
--- a/sw/source/filter/xml/wrtxml.cxx
+++ b/sw/source/filter/xml/wrtxml.cxx
@@ -35,6 +35,7 @@
 #include <comphelper/genericpropertyset.hxx>
 #include <comphelper/propertysetinfo.hxx>
 #include <vcl/errinf.hxx>
+#include <osl/diagnose.h>
 #include <sal/log.hxx>
 #include <o3tl/any.hxx>
 #include <svx/xmlgrhlp.hxx>
diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index 061931876760..fd2003966e85 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/xforms/XFormsSupplier.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 
+#include <osl/diagnose.h>
 #include <o3tl/any.hxx>
 #include <sax/tools/converter.hxx>
 #include <svx/svdpage.hxx>

Reply via email to