include/xmloff/xmlimp.hxx | 18 +++--- xmloff/source/core/xmlimp.cxx | 116 ++++++++++++++-------------------------- xmloff/source/draw/ximpstyl.cxx | 2 3 files changed, 52 insertions(+), 84 deletions(-)
New commits: commit c6383758c7f22071346b25f0d3e45d17d73b5a64 Author: David Tardon <[email protected]> Date: Tue Sep 6 14:09:40 2016 +0200 use std::unique_ptr Change-Id: I0cc84cc6b18849118a2b7824a8e4b37ca063cd50 diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx index 4ece8c1..a20ac8b 100644 --- a/include/xmloff/xmlimp.hxx +++ b/include/xmloff/xmlimp.hxx @@ -176,13 +176,13 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public ::cppu::WeakImplHelper8< std::unique_ptr<SvXMLImport_Impl> mpImpl; // dummy SvXMLNamespaceMap *mpNamespaceMap; - SvXMLUnitConverter *mpUnitConv; + std::unique_ptr<SvXMLUnitConverter> mpUnitConv; SvXMLImportContexts_Impl maContexts; FastSvXMLImportContexts_Impl maFastContexts; - SvXMLNumFmtHelper *mpNumImport; - ProgressBarHelper *mpProgressBarHelper; - XMLEventImportHelper *mpEventImportHelper; - XMLErrors *mpXMLErrors; + std::unique_ptr<SvXMLNumFmtHelper> mpNumImport; + std::unique_ptr<ProgressBarHelper> mpProgressBarHelper; + std::unique_ptr<XMLEventImportHelper> mpEventImportHelper; + std::unique_ptr<XMLErrors> mpXMLErrors; rtl::Reference<StyleMap> mpStyleMap; OUString msPackageProtocol; @@ -629,10 +629,10 @@ inline css::uno::Reference< css::util::XNumberFormatsSupplier > & SvXMLImport::G inline SvXMLNumFmtHelper* SvXMLImport::GetDataStylesImport() { - if ( mpNumImport == nullptr) + if ( !mpNumImport ) CreateDataStylesImport_(); - return mpNumImport; + return mpNumImport.get(); } diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index e02424f..c9c5c8b 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -409,7 +409,7 @@ void SvXMLImport::InitCtor_() msPackageProtocol = "vnd.sun.star.Package:"; if (mxNumberFormatsSupplier.is()) - mpNumImport = new SvXMLNumFmtHelper(mxNumberFormatsSupplier, GetComponentContext()); + mpNumImport = o3tl::make_unique<SvXMLNumFmtHelper>(mxNumberFormatsSupplier, GetComponentContext()); if (mxModel.is() && !mxEventListener.is()) { @@ -427,10 +427,6 @@ SvXMLImport::SvXMLImport( mpUnitConv( new SvXMLUnitConverter( xContext, util::MeasureUnit::MM_100TH, util::MeasureUnit::MM_100TH) ), - mpNumImport( nullptr ), - mpProgressBarHelper( nullptr ), - mpEventImportHelper( nullptr ), - mpXMLErrors( nullptr ), mnImportFlags( nImportFlags ), mnErrorFlags(SvXMLErrorFlags::NO), isFastContext( false ), @@ -451,24 +447,13 @@ SvXMLImport::SvXMLImport( SvXMLImport::~SvXMLImport() throw () { - delete mpXMLErrors; delete mpNamespaceMap; - delete mpUnitConv; - delete mpEventImportHelper; for ( SvXMLImportContext *pContext : maContexts ) { if( pContext ) pContext->ReleaseRef(); } - // #i9518# the import component might not be deleted until after the document has been closed, - // so the stuff that accesses the document has been moved to endDocument. - - // pNumImport is allocated in the ctor, so it must also be deleted here in case the component - // is created and deleted without actually importing. - delete mpNumImport; - delete mpProgressBarHelper; - if (mxEventListener.is() && mxModel.is()) mxModel->removeEventListener(mxEventListener); } @@ -611,17 +596,13 @@ void SAL_CALL SvXMLImport::endDocument() } } - if (mpNumImport) - { - delete mpNumImport; - mpNumImport = nullptr; - } + mpNumImport.reset(); if (mxImportInfo.is()) { uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = mxImportInfo->getPropertySetInfo(); if (xPropertySetInfo.is()) { - if (mpProgressBarHelper) + if (bool(mpProgressBarHelper)) { OUString sProgressMax(XML_PROGRESSMAX); OUString sProgressCurrent(XML_PROGRESSCURRENT); @@ -677,7 +658,7 @@ void SAL_CALL SvXMLImport::endDocument() } mpStyleMap.clear(); - if ( mpXMLErrors != nullptr ) + if ( bool( mpXMLErrors ) ) { mpXMLErrors->ThrowErrorAsSAXException( XMLERROR_FLAG_SEVERE ); } @@ -1044,12 +1025,8 @@ void SAL_CALL SvXMLImport::setTargetDocument( const uno::Reference< lang::XCompo mxModel->addEventListener(mxEventListener); } - SAL_WARN_IF( mpNumImport, "xmloff.core", "number format import already exists." ); - if( mpNumImport ) - { - delete mpNumImport; - mpNumImport = nullptr; - } + SAL_WARN_IF( bool(mpNumImport), "xmloff.core", "number format import already exists." ); + mpNumImport.reset(); } // XFilter @@ -1571,7 +1548,7 @@ ProgressBarHelper* SvXMLImport::GetProgressBarHelper() { if (!mpProgressBarHelper) { - mpProgressBarHelper = new ProgressBarHelper(mxStatusIndicator, false); + mpProgressBarHelper = o3tl::make_unique<ProgressBarHelper>(mxStatusIndicator, false); if (mxImportInfo.is()) { @@ -1612,7 +1589,7 @@ ProgressBarHelper* SvXMLImport::GetProgressBarHelper() } } } - return mpProgressBarHelper; + return mpProgressBarHelper.get(); } void SvXMLImport::AddNumberStyle(sal_Int32 nKey, const OUString& rName) @@ -1643,7 +1620,7 @@ XMLEventImportHelper& SvXMLImport::GetEventImport() { // construct event helper and register StarBasic handler and standard // event tables - mpEventImportHelper = new XMLEventImportHelper(); + mpEventImportHelper = o3tl::make_unique<XMLEventImportHelper>(); const OUString& sStarBasic(GetXMLToken(XML_STARBASIC)); mpEventImportHelper->RegisterFactory(sStarBasic, new XMLStarBasicContextFactory()); @@ -1823,11 +1800,11 @@ void SvXMLImport::CreateNumberFormatsSupplier_() void SvXMLImport::CreateDataStylesImport_() { - SAL_WARN_IF( mpNumImport != nullptr, "xmloff.core", "data styles import already exists!" ); + SAL_WARN_IF( bool(mpNumImport), "xmloff.core", "data styles import already exists!" ); uno::Reference<util::XNumberFormatsSupplier> xNum = GetNumberFormatsSupplier(); if ( xNum.is() ) - mpNumImport = new SvXMLNumFmtHelper(xNum, GetComponentContext() ); + mpNumImport = o3tl::make_unique<SvXMLNumFmtHelper>(xNum, GetComponentContext() ); } sal_Unicode SvXMLImport::ConvStarBatsCharToStarSymbol( sal_Unicode c ) @@ -1881,8 +1858,8 @@ void SvXMLImport::SetError( mnErrorFlags |= SvXMLErrorFlags::DO_NOTHING; // create error list on demand - if ( mpXMLErrors == nullptr ) - mpXMLErrors = new XMLErrors(); + if ( !mpXMLErrors ) + mpXMLErrors = o3tl::make_unique<XMLErrors>(); // save error information // use document locator (if none supplied) commit 7571242f793200379bf90f605f21225e03df85fe Author: David Tardon <[email protected]> Date: Tue Sep 6 13:07:30 2016 +0200 rewrite using a for loop Change-Id: Ia58651d011064e4d324e5e7851b681f4d13d41a7 diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index ec0bb36..e02424f 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -455,10 +455,8 @@ SvXMLImport::~SvXMLImport() throw () delete mpNamespaceMap; delete mpUnitConv; delete mpEventImportHelper; - while( !maContexts.empty() ) + for ( SvXMLImportContext *pContext : maContexts ) { - SvXMLImportContext *pContext = maContexts.back(); - maContexts.pop_back(); if( pContext ) pContext->ReleaseRef(); } commit 7e4d1521058916cf0facdba91f5b0ae1e95d318a Author: David Tardon <[email protected]> Date: Tue Sep 6 13:06:38 2016 +0200 drop unneeded dynamic allocation Change-Id: I9e19c33998137ee0065f92ccb980d1ff5a82115b diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx index 415ca40..4ece8c1 100644 --- a/include/xmloff/xmlimp.hxx +++ b/include/xmloff/xmlimp.hxx @@ -177,8 +177,8 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public ::cppu::WeakImplHelper8< SvXMLNamespaceMap *mpNamespaceMap; SvXMLUnitConverter *mpUnitConv; - SvXMLImportContexts_Impl *mpContexts; - FastSvXMLImportContexts_Impl *mpFastContexts; + SvXMLImportContexts_Impl maContexts; + FastSvXMLImportContexts_Impl maFastContexts; SvXMLNumFmtHelper *mpNumImport; ProgressBarHelper *mpProgressBarHelper; XMLEventImportHelper *mpEventImportHelper; diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index 7a1fd79..ec0bb36 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -427,8 +427,6 @@ SvXMLImport::SvXMLImport( mpUnitConv( new SvXMLUnitConverter( xContext, util::MeasureUnit::MM_100TH, util::MeasureUnit::MM_100TH) ), - mpContexts( new SvXMLImportContexts_Impl ), - mpFastContexts( new FastSvXMLImportContexts_Impl ), mpNumImport( nullptr ), mpProgressBarHelper( nullptr ), mpEventImportHelper( nullptr ), @@ -457,17 +455,12 @@ SvXMLImport::~SvXMLImport() throw () delete mpNamespaceMap; delete mpUnitConv; delete mpEventImportHelper; - delete mpFastContexts; - if( mpContexts ) + while( !maContexts.empty() ) { - while( !mpContexts->empty() ) - { - SvXMLImportContext *pContext = mpContexts->back(); - mpContexts->pop_back(); - if( pContext ) - pContext->ReleaseRef(); - } - delete mpContexts; + SvXMLImportContext *pContext = maContexts.back(); + maContexts.pop_back(); + if( pContext ) + pContext->ReleaseRef(); } // #i9518# the import component might not be deleted until after the document has been closed, @@ -762,10 +755,10 @@ void SAL_CALL SvXMLImport::startElement( const OUString& rName, // If there are contexts already, call a CreateChildContext at the topmost // context. Otherwise, create a default context. SvXMLImportContext *pContext; - sal_uInt16 nCount = mpContexts->size(); + sal_uInt16 nCount = maContexts.size(); if( nCount > 0 ) { - pContext = (*mpContexts)[nCount - 1]->CreateChildContext( nPrefix, + pContext = maContexts[nCount - 1]->CreateChildContext( nPrefix, aLocalName, xAttrList ); SAL_WARN_IF( !pContext || (pContext->GetPrefix() != nPrefix), "xmloff.core", @@ -800,7 +793,7 @@ void SAL_CALL SvXMLImport::startElement( const OUString& rName, pContext->StartElement( xAttrList ); // Push context on stack. - mpContexts->push_back( pContext ); + maContexts.push_back( pContext ); } void SAL_CALL SvXMLImport::endElement( const OUString& @@ -810,13 +803,13 @@ rName ) throw(xml::sax::SAXException, uno::RuntimeException, std::exception) { - sal_uInt16 nCount = mpContexts->size(); + sal_uInt16 nCount = maContexts.size(); SAL_WARN_IF( nCount == 0, "xmloff.core", "SvXMLImport::endElement: no context left" ); if( nCount > 0 ) { // Get topmost context and remove it from the stack. - SvXMLImportContext *pContext = mpContexts->back(); - mpContexts->pop_back(); + SvXMLImportContext *pContext = maContexts.back(); + maContexts.pop_back(); #ifdef DBG_UTIL // Non product only: check if endElement call matches startELement call. @@ -849,21 +842,21 @@ rName void SAL_CALL SvXMLImport::characters( const OUString& rChars ) throw(xml::sax::SAXException, uno::RuntimeException, std::exception) { - if ( !mpFastContexts->empty() ) + if ( !maFastContexts.empty() ) { - mpFastContexts->back()->characters( rChars ); + maFastContexts.back()->characters( rChars ); } - else if( !mpContexts->empty() ) + else if( !maContexts.empty() ) { - mpContexts->back()->Characters( rChars ); + maContexts.back()->Characters( rChars ); } } void SvXMLImport::Characters( const OUString& rChars ) { - if( !mpContexts->empty() ) + if( !maContexts.empty() ) { - mpContexts->back()->Characters( rChars ); + maContexts.back()->Characters( rChars ); } } @@ -891,10 +884,10 @@ void SAL_CALL SvXMLImport::startFastElement (sal_Int32 Element, { //Namespace handling is unnecessary. It is done by the fastparser itself. uno::Reference<XFastContextHandler> xContext; - sal_uInt16 nCount = mpFastContexts->size(); + sal_uInt16 nCount = maFastContexts.size(); if( nCount > 0 ) { - uno::Reference< XFastContextHandler > pHandler = (*mpFastContexts)[nCount - 1]; + uno::Reference< XFastContextHandler > pHandler = maFastContexts[nCount - 1]; xContext = pHandler->createFastChildContext( Element, Attribs ); } else @@ -917,11 +910,11 @@ void SAL_CALL SvXMLImport::startFastElement (sal_Int32 Element, SvXMLImportContext *pContext = dynamic_cast<SvXMLImportContext*>( xContext.get() ); if( pContext && pRewindMap ) pContext->PutRewindMap( pRewindMap ); - mpContexts->push_back( pContext ); + maContexts.push_back( pContext ); } // Push context on stack. - mpFastContexts->push_back( xContext ); + maFastContexts.push_back( xContext ); } void SAL_CALL SvXMLImport::startUnknownElement (const OUString & rPrefix, const OUString & rLocalName, @@ -929,10 +922,10 @@ void SAL_CALL SvXMLImport::startUnknownElement (const OUString & rPrefix, const throw (uno::RuntimeException, xml::sax::SAXException, std::exception) { uno::Reference<XFastContextHandler> xContext; - sal_uInt16 nCount = mpFastContexts->size(); + sal_uInt16 nCount = maFastContexts.size(); if( nCount > 0 ) { - uno::Reference< XFastContextHandler > pHandler = (*mpFastContexts)[nCount - 1]; + uno::Reference< XFastContextHandler > pHandler = maFastContexts[nCount - 1]; xContext = pHandler->createUnknownChildContext( rPrefix, rLocalName, Attribs ); } else @@ -942,21 +935,21 @@ void SAL_CALL SvXMLImport::startUnknownElement (const OUString & rPrefix, const xContext.set( new SvXMLImportContext( *this ) ); xContext->startUnknownElement( rPrefix, rLocalName, Attribs ); - mpFastContexts->push_back( xContext ); + maFastContexts.push_back( xContext ); } void SAL_CALL SvXMLImport::endFastElement (sal_Int32 Element) throw (uno::RuntimeException, xml::sax::SAXException, std::exception) { - sal_uInt16 nCount = mpFastContexts->size(); + sal_uInt16 nCount = maFastContexts.size(); if( nCount > 0 ) { - uno::Reference< XFastContextHandler > xContext = mpFastContexts->back(); - mpFastContexts->pop_back(); + uno::Reference< XFastContextHandler > xContext = maFastContexts.back(); + maFastContexts.pop_back(); isFastContext = true; xContext->endFastElement( Element ); if ( isFastContext ) - mpContexts->pop_back(); + maContexts.pop_back(); xContext = nullptr; } @@ -965,11 +958,11 @@ void SAL_CALL SvXMLImport::endFastElement (sal_Int32 Element) void SAL_CALL SvXMLImport::endUnknownElement (const OUString & rPrefix, const OUString & rLocalName) throw (uno::RuntimeException, xml::sax::SAXException, std::exception) { - sal_uInt16 nCount = mpFastContexts->size(); + sal_uInt16 nCount = maFastContexts.size(); if( nCount > 0 ) { - uno::Reference< XFastContextHandler > xContext = mpFastContexts->back(); - mpFastContexts->pop_back(); + uno::Reference< XFastContextHandler > xContext = maFastContexts.back(); + maFastContexts.pop_back(); xContext->endUnknownElement( rPrefix, rLocalName ); xContext = nullptr; } commit 9f965900a8a22cdf9dcd10f962e27b9ffc3ed8b8 Author: David Tardon <[email protected]> Date: Tue Aug 30 17:17:27 2016 +0200 remove extra whitespace Change-Id: I07dd8be5e74c0776d24222d8af2628535c9ba980 diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx index 44c7989..aee1d7b 100644 --- a/xmloff/source/draw/ximpstyl.cxx +++ b/xmloff/source/draw/ximpstyl.cxx @@ -1510,7 +1510,7 @@ SvXMLImportContext* SdXMLMasterStylesContext::CreateChildContext( } } } - else if(nPrefix == XML_NAMESPACE_STYLE + else if(nPrefix == XML_NAMESPACE_STYLE && IsXMLToken( rLocalName, XML_HANDOUT_MASTER ) ) { uno::Reference< presentation::XHandoutMasterSupplier > xHandoutSupp( GetSdImport().GetModel(), uno::UNO_QUERY ); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
