summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-10-06 14:10:00 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-10-06 16:12:44 +0200
commit3035a8066ffc7120bb6a6da2c50d5b032611bb90 (patch)
tree8fa1c1b77d35f07a63f26ee7e9d4ae952378d6ac /sw
parent0d24dd25e6f506b5f9128d70d7eb21f0bb4dde89 (diff)
use rtl::Reference in SvXMLEmbeddedObjectHelper
instead of manual ref-counting Change-Id: I559ebb3871dd3dd4a160bd83a259e36dd2f7b4d6 Reviewed-on: https://gerrit.libreoffice.org/43200 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/xml/swxml.cxx11
-rw-r--r--sw/source/filter/xml/wrtxml.cxx11
-rw-r--r--sw/source/filter/xml/xmlexp.cxx12
-rw-r--r--sw/source/filter/xml/xmlimp.cxx10
-rw-r--r--sw/source/filter/xml/xmlimp.hxx3
5 files changed, 25 insertions, 22 deletions
diff --git a/sw/source/filter/xml/swxml.cxx b/sw/source/filter/xml/swxml.cxx
index bb42dffa51e6..6ddeb64b8f3e 100644
--- a/sw/source/filter/xml/swxml.cxx
+++ b/sw/source/filter/xml/swxml.cxx
@@ -476,7 +476,7 @@ ErrCode XMLReader::Read( SwDoc &rDoc, const OUString& rBaseURL, SwPaM &rPaM, con
uno::Reference< document::XGraphicObjectResolver > xGraphicResolver;
SvXMLGraphicHelper *pGraphicHelper = nullptr;
uno::Reference< document::XEmbeddedObjectResolver > xObjectResolver;
- SvXMLEmbeddedObjectHelper *pObjectHelper = nullptr;
+ rtl::Reference<SvXMLEmbeddedObjectHelper> xObjectHelper;
// get the input stream (storage or stream)
uno::Reference<embed::XStorage> xStorage;
@@ -495,10 +495,10 @@ ErrCode XMLReader::Read( SwDoc &rDoc, const OUString& rBaseURL, SwPaM &rPaM, con
SfxObjectShell *pPersist = rDoc.GetPersist();
if( pPersist )
{
- pObjectHelper = SvXMLEmbeddedObjectHelper::Create(
+ xObjectHelper = SvXMLEmbeddedObjectHelper::Create(
xStorage, *pPersist,
SvXMLEmbeddedObjectHelperMode::Read );
- xObjectResolver = pObjectHelper;
+ xObjectResolver = xObjectHelper.get();
}
// Get the docshell, the model, and finally the model's component
@@ -891,8 +891,9 @@ ErrCode XMLReader::Read( SwDoc &rDoc, const OUString& rBaseURL, SwPaM &rPaM, con
if( pGraphicHelper )
SvXMLGraphicHelper::Destroy( pGraphicHelper );
xGraphicResolver = nullptr;
- if( pObjectHelper )
- SvXMLEmbeddedObjectHelper::Destroy( pObjectHelper );
+ if( xObjectHelper )
+ xObjectHelper->dispose();
+ xObjectHelper.clear();
xObjectResolver = nullptr;
aHoldRef.clear();
diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx
index 00562c6f7a25..e7469aec35dc 100644
--- a/sw/source/filter/xml/wrtxml.cxx
+++ b/sw/source/filter/xml/wrtxml.cxx
@@ -82,7 +82,7 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
uno::Reference< document::XGraphicObjectResolver > xGraphicResolver;
SvXMLGraphicHelper *pGraphicHelper = nullptr;
uno::Reference< document::XEmbeddedObjectResolver > xObjectResolver;
- SvXMLEmbeddedObjectHelper *pObjectHelper = nullptr;
+ rtl::Reference<SvXMLEmbeddedObjectHelper> xObjectHelper;
OSL_ENSURE( xStg.is(), "Where is my storage?" );
pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
@@ -93,10 +93,10 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
SfxObjectShell *pPersist = pDoc->GetPersist();
if( pPersist )
{
- pObjectHelper = SvXMLEmbeddedObjectHelper::Create(
+ xObjectHelper = SvXMLEmbeddedObjectHelper::Create(
xStg, *pPersist,
SvXMLEmbeddedObjectHelperMode::Write );
- xObjectResolver = pObjectHelper;
+ xObjectResolver = xObjectHelper.get();
}
// create and prepare the XPropertySet that gets passed through
@@ -392,8 +392,9 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
SvXMLGraphicHelper::Destroy( pGraphicHelper );
xGraphicResolver = nullptr;
- if( pObjectHelper )
- SvXMLEmbeddedObjectHelper::Destroy( pObjectHelper );
+ if( xObjectHelper )
+ xObjectHelper->dispose();
+ xObjectHelper.clear();
xObjectResolver = nullptr;
// restore redline mode
diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index d4827e1ba4b6..7838281e699c 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -246,17 +246,16 @@ ErrCode SwXMLExport::exportDoc( enum XMLTokenEnum eClass )
SetGraphicResolver( xGraphicResolver );
}
- SvXMLEmbeddedObjectHelper *pEmbeddedResolver = nullptr;
+ rtl::Reference<SvXMLEmbeddedObjectHelper> xEmbeddedResolver;
if( !GetEmbeddedResolver().is() )
{
SfxObjectShell *pPersist = pDoc->GetPersist();
if( pPersist )
{
- pEmbeddedResolver = SvXMLEmbeddedObjectHelper::Create(
+ xEmbeddedResolver = SvXMLEmbeddedObjectHelper::Create(
*pPersist,
SvXMLEmbeddedObjectHelperMode::Write );
- Reference< XEmbeddedObjectResolver > xEmbeddedResolver( pEmbeddedResolver );
- SetEmbeddedResolver( xEmbeddedResolver );
+ SetEmbeddedResolver( Reference<XEmbeddedObjectResolver>( xEmbeddedResolver.get() ) );
}
}
@@ -296,8 +295,9 @@ ErrCode SwXMLExport::exportDoc( enum XMLTokenEnum eClass )
if( pGraphicResolver )
SvXMLGraphicHelper::Destroy( pGraphicResolver );
- if( pEmbeddedResolver )
- SvXMLEmbeddedObjectHelper::Destroy( pEmbeddedResolver );
+ if( xEmbeddedResolver )
+ xEmbeddedResolver->dispose();
+ xEmbeddedResolver.clear();
OSL_ENSURE( !m_pTableLines, "there are table columns infos left" );
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index 6e1d0e70e1f6..03e0edaac60f 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -395,7 +395,6 @@ SwXMLImport::SwXMLImport(
m_pTableElemTokenMap( nullptr ),
m_pTableCellAttrTokenMap( nullptr ),
m_pGraphicResolver( nullptr ),
- m_pEmbeddedResolver( nullptr ),
m_nStyleFamilyMask( SfxStyleFamily::All ),
m_bLoadDoc( true ),
m_bInsert( false ),
@@ -673,10 +672,10 @@ void SwXMLImport::startDocument()
SfxObjectShell *pPersist = pDoc->GetPersist();
if( pPersist )
{
- m_pEmbeddedResolver = SvXMLEmbeddedObjectHelper::Create(
+ m_xEmbeddedResolver = SvXMLEmbeddedObjectHelper::Create(
*pPersist,
SvXMLEmbeddedObjectHelperMode::Read );
- Reference< document::XEmbeddedObjectResolver > xEmbeddedResolver( m_pEmbeddedResolver );
+ Reference< document::XEmbeddedObjectResolver > xEmbeddedResolver( m_xEmbeddedResolver.get() );
SetEmbeddedResolver( xEmbeddedResolver );
}
}
@@ -693,8 +692,9 @@ void SwXMLImport::endDocument()
if( m_pGraphicResolver )
SvXMLGraphicHelper::Destroy( m_pGraphicResolver );
- if( m_pEmbeddedResolver )
- SvXMLEmbeddedObjectHelper::Destroy( m_pEmbeddedResolver );
+ if( m_xEmbeddedResolver )
+ m_xEmbeddedResolver->dispose();
+ m_xEmbeddedResolver.clear();
// Clear the shape import to sort the shapes (and not in the
// destructor that might be called after the import has finished
// for Java filters.
diff --git a/sw/source/filter/xml/xmlimp.hxx b/sw/source/filter/xml/xmlimp.hxx
index 769efa031b5e..1afa89ac1650 100644
--- a/sw/source/filter/xml/xmlimp.hxx
+++ b/sw/source/filter/xml/xmlimp.hxx
@@ -69,7 +69,8 @@ class SwXMLImport: public SvXMLImport
SvXMLTokenMap *m_pTableElemTokenMap;
SvXMLTokenMap *m_pTableCellAttrTokenMap;
SvXMLGraphicHelper *m_pGraphicResolver;
- SvXMLEmbeddedObjectHelper *m_pEmbeddedResolver;
+ rtl::Reference<SvXMLEmbeddedObjectHelper>
+ m_xEmbeddedResolver;
SvXMLItemMapEntriesRef m_xTableItemMap;
SvXMLItemMapEntriesRef m_xTableColItemMap;