diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-10-06 14:10:00 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-10-06 16:12:44 +0200 |
commit | 3035a8066ffc7120bb6a6da2c50d5b032611bb90 (patch) | |
tree | 8fa1c1b77d35f07a63f26ee7e9d4ae952378d6ac /sw | |
parent | 0d24dd25e6f506b5f9128d70d7eb21f0bb4dde89 (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.cxx | 11 | ||||
-rw-r--r-- | sw/source/filter/xml/wrtxml.cxx | 11 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlexp.cxx | 12 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlimp.cxx | 10 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlimp.hxx | 3 |
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; |