include/xmloff/prstylei.hxx | 4 include/xmloff/shapeimport.hxx | 27 +- include/xmloff/txtstyli.hxx | 3 include/xmloff/xmlictxt.hxx | 9 include/xmloff/xmlimp.hxx | 2 include/xmloff/xmlnumi.hxx | 7 sc/source/filter/xml/xmlcvali.cxx | 4 sw/source/filter/xml/xmlfmt.cxx | 37 +-- sw/source/filter/xml/xmlitemi.cxx | 4 sw/source/filter/xml/xmltbli.cxx | 45 +-- sw/source/filter/xml/xmltbli.hxx | 4 xmloff/inc/XMLTextColumnsContext.hxx | 14 - xmloff/inc/xmltabi.hxx | 8 xmloff/source/core/xmlictxt.cxx | 15 + xmloff/source/core/xmlimp.cxx | 89 +++---- xmloff/source/core/xmlmultiimagehelper.cxx | 6 xmloff/source/draw/XMLShapePropertySetContext.cxx | 4 xmloff/source/draw/sdxmlimp.cxx | 234 ++++++++------------ xmloff/source/draw/sdxmlimp_impl.hxx | 24 +- xmloff/source/draw/shapeimport.cxx | 232 ++++++++----------- xmloff/source/draw/ximp3dscene.cxx | 17 - xmloff/source/draw/ximpshap.cxx | 28 +- xmloff/source/draw/ximpstyl.cxx | 67 +---- xmloff/source/draw/ximpstyl.hxx | 11 xmloff/source/forms/layerimport.cxx | 33 -- xmloff/source/forms/layerimport.hxx | 3 xmloff/source/style/XMLFontStylesContext_impl.hxx | 2 xmloff/source/style/prstylei.cxx | 12 - xmloff/source/style/xmlnumi.cxx | 31 -- xmloff/source/style/xmlstyle.cxx | 50 +--- xmloff/source/style/xmltabi.cxx | 32 -- xmloff/source/table/XMLTableImport.cxx | 2 xmloff/source/text/XMLIndexTOCContext.cxx | 8 xmloff/source/text/XMLTextColumnsContext.cxx | 59 +---- xmloff/source/text/XMLTextFrameContext.cxx | 24 +- xmloff/source/text/XMLTextFrameHyperlinkContext.cxx | 12 - xmloff/source/text/XMLTextListBlockContext.cxx | 6 xmloff/source/text/XMLTextShapeStyleContext.cxx | 4 xmloff/source/text/txtfldi.cxx | 4 xmloff/source/text/txtimp.cxx | 32 +- xmloff/source/text/txtlists.cxx | 10 xmloff/source/text/txtparaimphint.hxx | 25 -- xmloff/source/text/txtstyli.cxx | 20 - 43 files changed, 523 insertions(+), 741 deletions(-)
New commits: commit 0f9a81c8f58c1a9e771d7ff90abe3c20e8283f94 Author: David Tardon <[email protected]> Date: Thu Sep 8 16:27:25 2016 +0200 remove manual memory management Change-Id: I07960df50645fb77b24eaad4a60f93b715cbb6a9 diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx index 885cabd..a77496a 100644 --- a/xmloff/source/style/xmlstyle.cxx +++ b/xmloff/source/style/xmlstyle.cxx @@ -207,27 +207,26 @@ class SvXMLStyleIndex_Impl { OUString sName; sal_uInt16 nFamily; - const SvXMLStyleContext *pStyle; + const uno::Reference<SvXMLStyleContext> mxStyle; public: SvXMLStyleIndex_Impl( sal_uInt16 nFam, const OUString& rName ) : sName( rName ), - nFamily( nFam ), - pStyle ( nullptr ) + nFamily( nFam ) { } - SvXMLStyleIndex_Impl( const SvXMLStyleContext *pStl ) : - sName( pStl->GetName() ), - nFamily( pStl->GetFamily() ), - pStyle ( pStl ) + SvXMLStyleIndex_Impl( const uno::Reference<SvXMLStyleContext> &rStl ) : + sName( rStl->GetName() ), + nFamily( rStl->GetFamily() ), + mxStyle ( rStl ) { } const OUString& GetName() const { return sName; } sal_uInt16 GetFamily() const { return nFamily; } - const SvXMLStyleContext *GetStyle() const { return pStyle; } + const SvXMLStyleContext *GetStyle() const { return mxStyle.get(); } }; struct SvXMLStyleIndexCmp_Impl @@ -249,7 +248,7 @@ struct SvXMLStyleIndexCmp_Impl class SvXMLStylesContext_Impl { - typedef std::vector<SvXMLStyleContext*> StylesType; + typedef std::vector<uno::Reference<SvXMLStyleContext>> StylesType; typedef std::set<SvXMLStyleIndex_Impl, SvXMLStyleIndexCmp_Impl> IndicesType; StylesType aStyles; @@ -264,13 +263,12 @@ class SvXMLStylesContext_Impl public: explicit SvXMLStylesContext_Impl( bool bAuto ); - ~SvXMLStylesContext_Impl(); size_t GetStyleCount() const { return aStyles.size(); } SvXMLStyleContext *GetStyle( size_t i ) { - return i < aStyles.size() ? aStyles[ i ] : nullptr; + return i < aStyles.size() ? aStyles[ i ].get() : nullptr; } inline void AddStyle( SvXMLStyleContext *pStyle ); @@ -289,19 +287,9 @@ SvXMLStylesContext_Impl::SvXMLStylesContext_Impl( bool bAuto ) : #endif {} -SvXMLStylesContext_Impl::~SvXMLStylesContext_Impl() -{ - for (SvXMLStyleContext* pStyle : aStyles) - { - pStyle->ReleaseRef(); - } - aStyles.clear(); -} - inline void SvXMLStylesContext_Impl::AddStyle( SvXMLStyleContext *pStyle ) { aStyles.push_back( pStyle ); - pStyle->AddFirstRef(); FlushIndex(); } @@ -309,11 +297,6 @@ inline void SvXMLStylesContext_Impl::AddStyle( SvXMLStyleContext *pStyle ) void SvXMLStylesContext_Impl::Clear() { FlushIndex(); - - for (SvXMLStyleContext* pStyle : aStyles) - { - pStyle->ReleaseRef(); - } aStyles.clear(); } @@ -345,7 +328,7 @@ const SvXMLStyleContext *SvXMLStylesContext_Impl::FindStyleChildContext( sal_uIn { for( size_t i = 0; !pStyle && i < aStyles.size(); i++ ) { - const SvXMLStyleContext *pS = aStyles[ i ]; + const SvXMLStyleContext *pS = aStyles[ i ].get(); if( pS->GetFamily() == nFamily && pS->GetName() == rName ) pStyle = pS; commit 6678ff2e84f134a670259b48a7ba1721fccdaeb6 Author: David Tardon <[email protected]> Date: Thu Sep 8 15:41:11 2016 +0200 improve comment Change-Id: I475902aa68b426ce27782ed80f45344b57eadd9c diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx index f603699..6a78c2d 100644 --- a/xmloff/source/text/txtstyli.cxx +++ b/xmloff/source/text/txtstyli.cxx @@ -226,7 +226,7 @@ void XMLTextStyleContext::CreateAndInsert( bool bOverwrite ) // tell the style about it's events (if applicable) if (mxEventContext.is()) { - // set event suppplier and release reference to context + // pass events into event suppplier Reference<document::XEventsSupplier> xEventsSupplier(xStyle,UNO_QUERY); mxEventContext->SetEvents(xEventsSupplier); mxEventContext.clear(); commit 084de9dda40095937dfb990fc39edea31626dba3 Author: David Tardon <[email protected]> Date: Thu Sep 8 15:40:23 2016 +0200 remove manual memory management Change-Id: Ic715adae42ff34be892d19802629aa50077dc120 diff --git a/include/xmloff/txtstyli.hxx b/include/xmloff/txtstyli.hxx index bfcd7fc..3b7cb23 100644 --- a/include/xmloff/txtstyli.hxx +++ b/include/xmloff/txtstyli.hxx @@ -53,7 +53,7 @@ private: // Introduce import of empty list style (#i69523#) bool mbListStyleSet : 1; - XMLEventsImportContext* pEventContext; + css::uno::Reference<XMLEventsImportContext> mxEventContext; protected: @@ -69,7 +69,6 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList, SvXMLStylesContext& rStyles, sal_uInt16 nFamily, bool bDefaultStyle = false ); - virtual ~XMLTextStyleContext(); virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx index 5564408..f603699 100644 --- a/xmloff/source/text/txtstyli.cxx +++ b/xmloff/source/text/txtstyli.cxx @@ -146,11 +146,6 @@ XMLTextStyleContext::XMLTextStyleContext( SvXMLImport& rImport, , bHasCombinedCharactersLetter( false ) // Inherited paragraph style lost information about unset numbering (#i69523#) , mbListStyleSet( false ) -, pEventContext( nullptr ) -{ -} - -XMLTextStyleContext::~XMLTextStyleContext() { } @@ -192,10 +187,9 @@ SvXMLImportContext *XMLTextStyleContext::CreateChildContext( { // create and remember events import context // (for delayed processing of events) - pEventContext = new XMLEventsImportContext( GetImport(), nPrefix, - rLocalName); - pEventContext->AddFirstRef(); - pContext = pEventContext; + mxEventContext.set(new XMLEventsImportContext( GetImport(), nPrefix, + rLocalName)); + pContext = mxEventContext.get(); } if( !pContext ) @@ -230,12 +224,12 @@ void XMLTextStyleContext::CreateAndInsert( bool bOverwrite ) } // tell the style about it's events (if applicable) - if (nullptr != pEventContext) + if (mxEventContext.is()) { // set event suppplier and release reference to context Reference<document::XEventsSupplier> xEventsSupplier(xStyle,UNO_QUERY); - pEventContext->SetEvents(xEventsSupplier); - pEventContext->ReleaseRef(); + mxEventContext->SetEvents(xEventsSupplier); + mxEventContext.clear(); } // XML import: reconstrution of assignment of paragraph style to outline levels (#i69629#) commit 7dd877b4be3ca9cad441b88e4510d5917d25b5b6 Author: David Tardon <[email protected]> Date: Thu Sep 8 15:01:39 2016 +0200 remove manual memory management Change-Id: I218784e052ee4d7b9a64ac54cdfaa0f8d08aacad diff --git a/xmloff/source/text/txtparaimphint.hxx b/xmloff/source/text/txtparaimphint.hxx index 84da197..c2eeaee 100644 --- a/xmloff/source/text/txtparaimphint.hxx +++ b/xmloff/source/text/txtparaimphint.hxx @@ -106,22 +106,15 @@ class XMLHyperlinkHint_Impl : public XMLHint_Impl OUString sTargetFrameName; OUString sStyleName; OUString sVisitedStyleName; - XMLEventsImportContext* pEvents; + css::uno::Reference<XMLEventsImportContext> mxEvents; public: XMLHyperlinkHint_Impl( const css::uno::Reference < css::text::XTextRange > & rPos ) : - XMLHint_Impl( XML_HINT_HYPERLINK, rPos, rPos ), - pEvents( nullptr ) + XMLHint_Impl( XML_HINT_HYPERLINK, rPos, rPos ) { } - virtual ~XMLHyperlinkHint_Impl() - { - if (nullptr != pEvents) - pEvents->ReleaseRef(); - } - void SetHRef( const OUString& s ) { sHRef = s; } const OUString& GetHRef() const { return sHRef; } void SetName( const OUString& s ) { sName = s; } @@ -134,13 +127,11 @@ public: const OUString& GetVisitedStyleName() const { return sVisitedStyleName; } XMLEventsImportContext* GetEventsContext() const { - return pEvents; + return mxEvents.get(); } void SetEventsContext( XMLEventsImportContext* pCtxt ) { - pEvents = pCtxt; - if (pEvents != nullptr) - pEvents->AddFirstRef(); + mxEvents.set(pCtxt); } }; commit c6a65137436c87a6e9f85d46193c42ba35698446 Author: David Tardon <[email protected]> Date: Thu Sep 8 14:59:12 2016 +0200 use std::unique_ptr Change-Id: I352e542de656d22963eb872f79b40e20008d0a32 diff --git a/xmloff/inc/XMLTextColumnsContext.hxx b/xmloff/inc/XMLTextColumnsContext.hxx index b750adb..15b40cd 100644 --- a/xmloff/inc/XMLTextColumnsContext.hxx +++ b/xmloff/inc/XMLTextColumnsContext.hxx @@ -20,6 +20,8 @@ #ifndef INCLUDED_XMLOFF_INC_XMLTEXTCOLUMNSCONTEXT_HXX #define INCLUDED_XMLOFF_INC_XMLTEXTCOLUMNSCONTEXT_HXX +#include <memory> + #include "XMLElementPropertyContext.hxx" class XMLTextColumnContext_Impl; @@ -39,10 +41,10 @@ class XMLTextColumnsContext :public XMLElementPropertyContext const OUString sSeparatorLineStyle; - XMLTextColumnsArray_Impl *pColumns; + std::unique_ptr<XMLTextColumnsArray_Impl> pColumns; css::uno::Reference<XMLTextColumnSepContext_Impl> mxColumnSep; - SvXMLTokenMap *pColumnAttrTokenMap; - SvXMLTokenMap *pColumnSepAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> pColumnAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> pColumnSepAttrTokenMap; sal_Int16 nCount; bool bAutomatic; sal_Int32 nAutomaticDistance; @@ -56,8 +58,6 @@ public: const XMLPropertyState& rProp, ::std::vector< XMLPropertyState > &rProps ); - virtual ~XMLTextColumnsContext(); - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override; diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx index 475f9c9..95440b0 100644 --- a/xmloff/source/text/XMLTextColumnsContext.cxx +++ b/xmloff/source/text/XMLTextColumnsContext.cxx @@ -22,6 +22,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/style/VerticalAlignment.hpp> #include <com/sun/star/beans/XPropertySet.hpp> +#include <o3tl/make_unique.hxx> #include <sax/tools/converter.hxx> #include <xmloff/xmltkmap.hxx> #include <xmloff/xmluconv.hxx> @@ -275,7 +276,6 @@ XMLTextColumnsContext::XMLTextColumnsContext( , sSeparatorLineVerticalAlignment("SeparatorLineVerticalAlignment") , sAutomaticDistance("AutomaticDistance") , sSeparatorLineStyle("SeparatorLineStyle") -, pColumns( nullptr ) , pColumnAttrTokenMap( new SvXMLTokenMap(aColAttrTokenMap) ) , pColumnSepAttrTokenMap( new SvXMLTokenMap(aColSepAttrTokenMap) ) , nCount( 0 ) @@ -308,13 +308,6 @@ XMLTextColumnsContext::XMLTextColumnsContext( } } -XMLTextColumnsContext::~XMLTextColumnsContext() -{ - delete pColumns; - delete pColumnAttrTokenMap; - delete pColumnSepAttrTokenMap; -} - SvXMLImportContext *XMLTextColumnsContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -331,7 +324,7 @@ SvXMLImportContext *XMLTextColumnsContext::CreateChildContext( // add new tabstop to array of tabstops if( !pColumns ) - pColumns = new XMLTextColumnsArray_Impl; + pColumns = o3tl::make_unique<XMLTextColumnsArray_Impl>(); pColumns->push_back( xColumn ); commit 516992ec6e8d67552610928b91d7b0d9f7014600 Author: David Tardon <[email protected]> Date: Thu Sep 8 14:56:44 2016 +0200 remove manual memory management Change-Id: Ice48916fc9841a29b3a02997375347c7b605effe diff --git a/xmloff/inc/XMLTextColumnsContext.hxx b/xmloff/inc/XMLTextColumnsContext.hxx index f743632..b750adb 100644 --- a/xmloff/inc/XMLTextColumnsContext.hxx +++ b/xmloff/inc/XMLTextColumnsContext.hxx @@ -26,7 +26,7 @@ class XMLTextColumnContext_Impl; class XMLTextColumnSepContext_Impl; class SvXMLTokenMap; -typedef std::vector<XMLTextColumnContext_Impl *> XMLTextColumnsArray_Impl; +typedef std::vector<css::uno::Reference<XMLTextColumnContext_Impl>> XMLTextColumnsArray_Impl; class XMLTextColumnsContext :public XMLElementPropertyContext { @@ -40,7 +40,7 @@ class XMLTextColumnsContext :public XMLElementPropertyContext XMLTextColumnsArray_Impl *pColumns; - XMLTextColumnSepContext_Impl *pColumnSep; + css::uno::Reference<XMLTextColumnSepContext_Impl> mxColumnSep; SvXMLTokenMap *pColumnAttrTokenMap; SvXMLTokenMap *pColumnSepAttrTokenMap; sal_Int16 nCount; diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx index 08e8d05..475f9c9 100644 --- a/xmloff/source/text/XMLTextColumnsContext.cxx +++ b/xmloff/source/text/XMLTextColumnsContext.cxx @@ -276,7 +276,6 @@ XMLTextColumnsContext::XMLTextColumnsContext( , sAutomaticDistance("AutomaticDistance") , sSeparatorLineStyle("SeparatorLineStyle") , pColumns( nullptr ) -, pColumnSep( nullptr ) , pColumnAttrTokenMap( new SvXMLTokenMap(aColAttrTokenMap) ) , pColumnSepAttrTokenMap( new SvXMLTokenMap(aColSepAttrTokenMap) ) , nCount( 0 ) @@ -311,17 +310,6 @@ XMLTextColumnsContext::XMLTextColumnsContext( XMLTextColumnsContext::~XMLTextColumnsContext() { - if( pColumns ) - { - for (XMLTextColumnsArray_Impl::iterator it = pColumns->begin(); - it != pColumns->end(); ++it) - { - (*it)->ReleaseRef(); - } - } - if( pColumnSep ) - pColumnSep->ReleaseRef(); - delete pColumns; delete pColumnAttrTokenMap; delete pColumnSepAttrTokenMap; @@ -337,28 +325,26 @@ SvXMLImportContext *XMLTextColumnsContext::CreateChildContext( if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLocalName, XML_COLUMN ) ) { - XMLTextColumnContext_Impl *pColumn = + const uno::Reference<XMLTextColumnContext_Impl> xColumn{ new XMLTextColumnContext_Impl( GetImport(), nPrefix, rLocalName, - xAttrList, *pColumnAttrTokenMap ); + xAttrList, *pColumnAttrTokenMap )}; // add new tabstop to array of tabstops if( !pColumns ) pColumns = new XMLTextColumnsArray_Impl; - pColumns->push_back( pColumn ); - pColumn->AddFirstRef(); + pColumns->push_back( xColumn ); - pContext = pColumn; + pContext = xColumn.get(); } else if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLocalName, XML_COLUMN_SEP ) ) { - pColumnSep = + mxColumnSep.set( new XMLTextColumnSepContext_Impl( GetImport(), nPrefix, rLocalName, - xAttrList, *pColumnSepAttrTokenMap ); - pColumnSep->AddFirstRef(); + xAttrList, *pColumnSepAttrTokenMap )); - pContext = pColumnSep; + pContext = mxColumnSep.get(); } else { @@ -442,29 +428,29 @@ void XMLTextColumnsContext::EndElement( ) Reference < XPropertySet > xPropSet( xColumns, UNO_QUERY ); if( xPropSet.is() ) { - bool bOn = pColumnSep != nullptr; + bool bOn = mxColumnSep != nullptr; xPropSet->setPropertyValue( sSeparatorLineIsOn, Any(bOn) ); - if( pColumnSep ) + if( mxColumnSep.is() ) { - if( pColumnSep->GetWidth() ) + if( mxColumnSep->GetWidth() ) { - xPropSet->setPropertyValue( sSeparatorLineWidth, Any(pColumnSep->GetWidth()) ); + xPropSet->setPropertyValue( sSeparatorLineWidth, Any(mxColumnSep->GetWidth()) ); } - if( pColumnSep->GetHeight() ) + if( mxColumnSep->GetHeight() ) { xPropSet->setPropertyValue( sSeparatorLineRelativeHeight, - Any(pColumnSep->GetHeight()) ); + Any(mxColumnSep->GetHeight()) ); } - if ( pColumnSep->GetStyle() ) + if ( mxColumnSep->GetStyle() ) { - xPropSet->setPropertyValue( sSeparatorLineStyle, Any(pColumnSep->GetStyle()) ); + xPropSet->setPropertyValue( sSeparatorLineStyle, Any(mxColumnSep->GetStyle()) ); } - xPropSet->setPropertyValue( sSeparatorLineColor, Any(pColumnSep->GetColor()) ); + xPropSet->setPropertyValue( sSeparatorLineColor, Any(mxColumnSep->GetColor()) ); - xPropSet->setPropertyValue( sSeparatorLineVerticalAlignment, Any(pColumnSep->GetVertAlign()) ); + xPropSet->setPropertyValue( sSeparatorLineVerticalAlignment, Any(mxColumnSep->GetVertAlign()) ); } // handle 'automatic columns': column distance commit 73f32870cf3b88b65c40e362fae9bb63e51ec5ce Author: David Tardon <[email protected]> Date: Thu Sep 8 14:50:52 2016 +0200 use std::unique_ptr Change-Id: I3cbe6058cd0d1bccb786866a6adf4859424e36ab diff --git a/xmloff/inc/xmltabi.hxx b/xmloff/inc/xmltabi.hxx index ecc1b4a..de941e5 100644 --- a/xmloff/inc/xmltabi.hxx +++ b/xmloff/inc/xmltabi.hxx @@ -20,6 +20,8 @@ #ifndef INCLUDED_XMLOFF_INC_XMLTABI_HXX #define INCLUDED_XMLOFF_INC_XMLTABI_HXX +#include <memory> + #include "XMLElementPropertyContext.hxx" class SvXMLImport; @@ -30,7 +32,7 @@ typedef std::vector<css::uno::Reference<SvxXMLTabStopContext_Impl>> SvxXMLTabSto class SvxXMLTabStopImportContext : public XMLElementPropertyContext { private: - SvxXMLTabStopArray_Impl* mpTabStops; + std::unique_ptr<SvxXMLTabStopArray_Impl> mpTabStops; public: @@ -39,8 +41,6 @@ public: const XMLPropertyState& rProp, ::std::vector< XMLPropertyState > &rProps ); - virtual ~SvxXMLTabStopImportContext(); - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override; diff --git a/xmloff/source/style/xmltabi.cxx b/xmloff/source/style/xmltabi.cxx index c2b6557..33382e9 100644 --- a/xmloff/source/style/xmltabi.cxx +++ b/xmloff/source/style/xmltabi.cxx @@ -18,6 +18,7 @@ */ #include <com/sun/star/style/TabAlign.hpp> +#include <o3tl/make_unique.hxx> #include <rtl/ustrbuf.hxx> #include <xmloff/xmltkmap.hxx> #include <xmloff/nmspmap.hxx> @@ -172,16 +173,10 @@ SvxXMLTabStopImportContext::SvxXMLTabStopImportContext( const OUString& rLName, const XMLPropertyState& rProp, ::std::vector< XMLPropertyState > &rProps ) -: XMLElementPropertyContext( rImport, nPrfx, rLName, rProp, rProps ), - mpTabStops( nullptr ) +: XMLElementPropertyContext( rImport, nPrfx, rLName, rProp, rProps ) { } -SvxXMLTabStopImportContext::~SvxXMLTabStopImportContext() -{ - delete mpTabStops; -} - SvXMLImportContext *SvxXMLTabStopImportContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -198,7 +193,7 @@ SvXMLImportContext *SvxXMLTabStopImportContext::CreateChildContext( // add new tabstop to array of tabstops if( !mpTabStops ) - mpTabStops = new SvxXMLTabStopArray_Impl; + mpTabStops = o3tl::make_unique<SvxXMLTabStopArray_Impl>(); mpTabStops->push_back( xTabStopContext ); commit 655b94643cae76e09d179adc8172790fcff3f881 Author: David Tardon <[email protected]> Date: Thu Sep 8 14:49:11 2016 +0200 remove manual memory management Change-Id: I3f5259ac7cf099a5d03d95a7e9132cc8cb6d0734 diff --git a/xmloff/inc/xmltabi.hxx b/xmloff/inc/xmltabi.hxx index 5fb54e0..ecc1b4a 100644 --- a/xmloff/inc/xmltabi.hxx +++ b/xmloff/inc/xmltabi.hxx @@ -25,7 +25,7 @@ class SvXMLImport; class SvxXMLTabStopContext_Impl; -typedef std::vector<SvxXMLTabStopContext_Impl *> SvxXMLTabStopArray_Impl; +typedef std::vector<css::uno::Reference<SvxXMLTabStopContext_Impl>> SvxXMLTabStopArray_Impl; class SvxXMLTabStopImportContext : public XMLElementPropertyContext { diff --git a/xmloff/source/style/xmltabi.cxx b/xmloff/source/style/xmltabi.cxx index d922b4b..c2b6557 100644 --- a/xmloff/source/style/xmltabi.cxx +++ b/xmloff/source/style/xmltabi.cxx @@ -179,16 +179,6 @@ SvxXMLTabStopImportContext::SvxXMLTabStopImportContext( SvxXMLTabStopImportContext::~SvxXMLTabStopImportContext() { - if( mpTabStops ) - { - while( !mpTabStops->empty() ) - { - SvxXMLTabStopContext_Impl *pTabStop = mpTabStops->back(); - mpTabStops->pop_back(); - pTabStop->ReleaseRef(); - } - } - delete mpTabStops; } @@ -202,18 +192,17 @@ SvXMLImportContext *SvxXMLTabStopImportContext::CreateChildContext( if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLocalName, XML_TAB_STOP ) ) { // create new tabstop import context - SvxXMLTabStopContext_Impl *pTabStopContext = + const uno::Reference<SvxXMLTabStopContext_Impl> xTabStopContext{ new SvxXMLTabStopContext_Impl( GetImport(), nPrefix, rLocalName, - xAttrList ); + xAttrList )}; // add new tabstop to array of tabstops if( !mpTabStops ) mpTabStops = new SvxXMLTabStopArray_Impl; - mpTabStops->push_back( pTabStopContext ); - pTabStopContext->AddFirstRef(); + mpTabStops->push_back( xTabStopContext ); - pContext = pTabStopContext; + pContext = xTabStopContext.get(); } else { @@ -235,7 +224,7 @@ void SvxXMLTabStopImportContext::EndElement( ) style::TabStop* pTabStops = aSeq.getArray(); for( sal_uInt16 i=0; i < nCount; i++ ) { - SvxXMLTabStopContext_Impl *pTabStopContext = (*mpTabStops)[i]; + SvxXMLTabStopContext_Impl *pTabStopContext = (*mpTabStops)[i].get(); const style::TabStop& rTabStop = pTabStopContext->getTabStop(); bool bDflt = style::TabAlign_DEFAULT == rTabStop.Alignment; if( !bDflt || 0==i ) commit 4bda91ca86f0036320140178a533c6424b01e43f Author: David Tardon <[email protected]> Date: Thu Sep 8 14:45:44 2016 +0200 use std::unique_ptr Change-Id: I26ab9b4fa441fcbcce8eb013a1d7dce5c8591b6d diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx index 6d9e8d9..885cabd 100644 --- a/xmloff/source/style/xmlstyle.cxx +++ b/xmloff/source/style/xmlstyle.cxx @@ -29,6 +29,7 @@ #include <com/sun/star/style/XAutoStylesSupplier.hpp> #include <com/sun/star/style/XAutoStyleFamily.hpp> #include "PageMasterPropMapper.hxx" +#include <o3tl/make_unique.hxx> #include <tools/debug.hxx> #include <svl/itemset.hxx> #include <xmloff/nmspmap.hxx> @@ -53,6 +54,7 @@ #include "PageMasterImportContext.hxx" #include "PageMasterImportPropMapper.hxx" +#include <memory> #include <set> #include <vector> @@ -251,14 +253,14 @@ class SvXMLStylesContext_Impl typedef std::set<SvXMLStyleIndex_Impl, SvXMLStyleIndexCmp_Impl> IndicesType; StylesType aStyles; - mutable IndicesType* pIndices; + mutable std::unique_ptr<IndicesType> pIndices; bool bAutomaticStyle; #if OSL_DEBUG_LEVEL > 0 mutable sal_uInt32 m_nIndexCreated; #endif - void FlushIndex() { delete pIndices; pIndices = nullptr; } + void FlushIndex() { pIndices.reset(); } public: explicit SvXMLStylesContext_Impl( bool bAuto ); @@ -281,7 +283,6 @@ public: }; SvXMLStylesContext_Impl::SvXMLStylesContext_Impl( bool bAuto ) : - pIndices( nullptr ), bAutomaticStyle( bAuto ) #if OSL_DEBUG_LEVEL > 0 , m_nIndexCreated( 0 ) @@ -290,8 +291,6 @@ SvXMLStylesContext_Impl::SvXMLStylesContext_Impl( bool bAuto ) : SvXMLStylesContext_Impl::~SvXMLStylesContext_Impl() { - delete pIndices; - for (SvXMLStyleContext* pStyle : aStyles) { pStyle->ReleaseRef(); @@ -326,7 +325,7 @@ const SvXMLStyleContext *SvXMLStylesContext_Impl::FindStyleChildContext( sal_uIn if( !pIndices && bCreateIndex && !aStyles.empty() ) { - pIndices = new IndicesType(aStyles.begin(), aStyles.end()); + pIndices = o3tl::make_unique<IndicesType>(aStyles.begin(), aStyles.end()); SAL_WARN_IF(pIndices->size() != aStyles.size(), "xmloff", "Here is a duplicate Style"); #if OSL_DEBUG_LEVEL > 0 SAL_WARN_IF(0 != m_nIndexCreated, "xmloff.style", @@ -341,7 +340,7 @@ const SvXMLStyleContext *SvXMLStylesContext_Impl::FindStyleChildContext( sal_uIn IndicesType::iterator aFind = pIndices->find(aIndex); if( aFind != pIndices->end() ) pStyle = aFind->GetStyle(); - } + } else { for( size_t i = 0; !pStyle && i < aStyles.size(); i++ ) commit a363175cfc100664efa218b87a4d9a143014054a Author: David Tardon <[email protected]> Date: Thu Sep 8 14:36:25 2016 +0200 remove direct memory management Change-Id: I9c7d53a9cfd5c03e1551626a96cdaa30fc4e546b diff --git a/include/xmloff/xmlnumi.hxx b/include/xmloff/xmlnumi.hxx index f6bf8d6..dbe8adc 100644 --- a/include/xmloff/xmlnumi.hxx +++ b/include/xmloff/xmlnumi.hxx @@ -33,7 +33,7 @@ namespace com { namespace sun { namespace star { namespace frame { class XModel; } } } } class SvxXMLListLevelStyleContext_Impl; -typedef std::vector<SvxXMLListLevelStyleContext_Impl *> SvxXMLListStyle_Impl; +typedef std::vector<css::uno::Reference<SvxXMLListLevelStyleContext_Impl>> SvxXMLListStyle_Impl; class XMLOFF_DLLPUBLIC SvxXMLListStyleContext : public SvXMLStyleContext @@ -66,8 +66,6 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList, bool bOutl = false ); - virtual ~SvxXMLListStyleContext(); - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index b087fed..bfec980 100644 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -1033,20 +1033,6 @@ SvxXMLListStyleContext::SvxXMLListStyleContext( SvXMLImport& rImport, { } -SvxXMLListStyleContext::~SvxXMLListStyleContext() -{ - if( pLevelStyles ) - { - while( !pLevelStyles->empty() ) - { - SvxXMLListLevelStyleContext_Impl *pStyle = pLevelStyles->back(); - pLevelStyles->pop_back(); - pStyle->ReleaseRef(); - } - } -} - - SvXMLImportContext *SvxXMLListStyleContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -1061,15 +1047,14 @@ SvXMLImportContext *SvxXMLListStyleContext::CreateChildContext( IsXMLToken( rLocalName, XML_LIST_LEVEL_STYLE_BULLET ) || IsXMLToken( rLocalName, XML_LIST_LEVEL_STYLE_IMAGE ) ) ) ) { - SvxXMLListLevelStyleContext_Impl *pLevelStyle = + uno::Reference<SvxXMLListLevelStyleContext_Impl> xLevelStyle{ new SvxXMLListLevelStyleContext_Impl( GetImport(), nPrefix, - rLocalName, xAttrList ); + rLocalName, xAttrList )}; if( !pLevelStyles ) pLevelStyles = o3tl::make_unique<SvxXMLListStyle_Impl>(); - pLevelStyles->push_back( pLevelStyle ); - pLevelStyle->AddFirstRef(); + pLevelStyles->push_back( xLevelStyle ); - pContext = pLevelStyle; + pContext = xLevelStyle.get(); } else { @@ -1091,7 +1076,7 @@ void SvxXMLListStyleContext::FillUnoNumRule( for( sal_uInt16 i=0; i < nCount; i++ ) { SvxXMLListLevelStyleContext_Impl *pLevelStyle = - (*pLevelStyles)[i]; + (*pLevelStyles)[i].get(); sal_Int32 nLevel = pLevelStyle->GetLevel(); if( nLevel >= 0 && nLevel < l_nLevels ) { commit a66933a890a70f5ff2ac43ccc03c26540ef2ccb3 Author: David Tardon <[email protected]> Date: Thu Sep 8 14:34:42 2016 +0200 use std::unique_ptr Change-Id: I5128b3e950657f3fe6fc71a8de56c9dd87ac2324 diff --git a/include/xmloff/xmlnumi.hxx b/include/xmloff/xmlnumi.hxx index 1b5983e..f6bf8d6 100644 --- a/include/xmloff/xmlnumi.hxx +++ b/include/xmloff/xmlnumi.hxx @@ -22,6 +22,7 @@ #include <sal/config.h> +#include <memory> #include <vector> #include <com/sun/star/container/XIndexReplace.hpp> @@ -43,7 +44,7 @@ class XMLOFF_DLLPUBLIC SvxXMLListStyleContext css::uno::Reference< css::container::XIndexReplace > xNumRules; - SvxXMLListStyle_Impl *pLevelStyles; + std::unique_ptr<SvxXMLListStyle_Impl> pLevelStyles; sal_Int32 nLevels; bool bConsecutive : 1; diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index 5feafab..b087fed 100644 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -31,6 +31,7 @@ #include <com/sun/star/io/XOutputStream.hpp> #include <o3tl/any.hxx> +#include <o3tl/make_unique.hxx> #include <rtl/ustrbuf.hxx> #include <osl/diagnose.h> @@ -1026,7 +1027,6 @@ SvxXMLListStyleContext::SvxXMLListStyleContext( SvXMLImport& rImport, , sIsPhysical( "IsPhysical" ) , sNumberingRules( "NumberingRules" ) , sIsContinuousNumbering( "IsContinuousNumbering" ) -, pLevelStyles( nullptr ) , nLevels( 0 ) , bConsecutive( false ) , bOutline( bOutl ) @@ -1044,8 +1044,6 @@ SvxXMLListStyleContext::~SvxXMLListStyleContext() pStyle->ReleaseRef(); } } - - delete pLevelStyles; } @@ -1067,7 +1065,7 @@ SvXMLImportContext *SvxXMLListStyleContext::CreateChildContext( new SvxXMLListLevelStyleContext_Impl( GetImport(), nPrefix, rLocalName, xAttrList ); if( !pLevelStyles ) - pLevelStyles = new SvxXMLListStyle_Impl; + pLevelStyles = o3tl::make_unique<SvxXMLListStyle_Impl>(); pLevelStyles->push_back( pLevelStyle ); pLevelStyle->AddFirstRef(); commit 91c8bec906cd3c39b9da5629391b151d1bad9a03 Author: David Tardon <[email protected]> Date: Thu Sep 8 11:33:01 2016 +0200 remove direct memory management Change-Id: I269d42704004f2d6e620fedc82a27e7982ecda23 diff --git a/xmloff/source/forms/layerimport.cxx b/xmloff/source/forms/layerimport.cxx index c25565e..7992650 100644 --- a/xmloff/source/forms/layerimport.cxx +++ b/xmloff/source/forms/layerimport.cxx @@ -71,7 +71,6 @@ using namespace ::com::sun::star::sdb; //= OFormLayerXMLImport_Impl OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) :m_rImporter(_rImporter) - ,m_pAutoStyles(nullptr) { // build the attribute2property map // string properties which are exported as attributes @@ -226,20 +225,10 @@ OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) m_aCurrentPageIds = m_aControlIds.end(); } -OFormLayerXMLImport_Impl::~OFormLayerXMLImport_Impl() -{ - // outlined to allow forward declaration of OAttribute2Property in the header - - if (m_pAutoStyles) - m_pAutoStyles->ReleaseRef(); -} - void OFormLayerXMLImport_Impl::setAutoStyleContext(SvXMLStylesContext* _pNewContext) { - OSL_ENSURE(!m_pAutoStyles, "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); - m_pAutoStyles = _pNewContext; - if (m_pAutoStyles) - m_pAutoStyles->AddFirstRef(); + OSL_ENSURE(!m_xAutoStyles.is(), "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); + m_xAutoStyles.set(_pNewContext); } void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropertySet >& _rxControlModel, const OUString& _rControlNumerStyleName) @@ -247,17 +236,15 @@ void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropert OSL_ENSURE(_rxControlModel.is() && (!_rControlNumerStyleName.isEmpty()), "OFormLayerXMLImport_Impl::applyControlNumberStyle: invalid arguments (this will crash)!"); - OSL_ENSURE(m_pAutoStyles, "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); - if (!m_pAutoStyles) + OSL_ENSURE(m_xAutoStyles.is(), "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); + if (!m_xAutoStyles.is()) { - m_pAutoStyles = m_rImporter.GetShapeImport()->GetAutoStylesContext(); - if (m_pAutoStyles) - m_pAutoStyles->AddFirstRef(); + m_xAutoStyles.set(m_rImporter.GetShapeImport()->GetAutoStylesContext()); } - if (m_pAutoStyles) + if (m_xAutoStyles.is()) { - const SvXMLStyleContext* pStyle = m_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); + const SvXMLStyleContext* pStyle = m_xAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); if (pStyle) { const SvXMLNumFormatContext* pDataStyle = static_cast<const SvXMLNumFormatContext*>(pStyle); @@ -341,12 +328,12 @@ void OFormLayerXMLImport_Impl::registerCellRangeListSource( const Reference< XPr } const SvXMLStyleContext* OFormLayerXMLImport_Impl::getStyleElement(const OUString& _rStyleName) const { - OSL_ENSURE( m_pAutoStyles, "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); + OSL_ENSURE( m_xAutoStyles.is(), "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); // did you use setAutoStyleContext? const SvXMLStyleContext* pControlStyle = - m_pAutoStyles ? m_pAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : nullptr; - OSL_ENSURE( pControlStyle || !m_pAutoStyles, + m_xAutoStyles.is() ? m_xAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : nullptr; + OSL_ENSURE( pControlStyle || !m_xAutoStyles.is(), OStringBuffer("OFormLayerXMLImport_Impl::getStyleElement: did not find the style named \"").append(OUStringToOString(_rStyleName, RTL_TEXTENCODING_ASCII_US)).append("\"!").getStr() ); return pControlStyle; } diff --git a/xmloff/source/forms/layerimport.hxx b/xmloff/source/forms/layerimport.hxx index be8dddf..c3b91e2 100644 --- a/xmloff/source/forms/layerimport.hxx +++ b/xmloff/source/forms/layerimport.hxx @@ -58,7 +58,7 @@ namespace xmloff /// the supplier for the forms of the currently imported page css::uno::Reference< css::form::XFormsSupplier2 > m_xCurrentPageFormsSupp; - SvXMLStylesContext* m_pAutoStyles; + css::uno::Reference<SvXMLStylesContext> m_xAutoStyles; protected: typedef std::map< OUString, css::uno::Reference< css::beans::XPropertySet > > MapString2PropertySet; @@ -129,7 +129,6 @@ namespace xmloff const OUString& _rSubmissionID ); - virtual ~OFormLayerXMLImport_Impl(); protected: explicit OFormLayerXMLImport_Impl(SvXMLImport& _rImporter); commit 7977914ae7614657575f7d1ae2cf86f7ad69a580 Author: David Tardon <[email protected]> Date: Thu Sep 8 11:28:31 2016 +0200 remove direct memory management Change-Id: I9ab3fccd5b8a0cc64bfe7b70ed7a3e36d0e58a33 diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx index aee1d7b..5a42668 100644 --- a/xmloff/source/draw/ximpstyl.cxx +++ b/xmloff/source/draw/ximpstyl.cxx @@ -379,8 +379,7 @@ SdXMLPageMasterContext::SdXMLPageMasterContext( sal_uInt16 nPrfx, const OUString& rLName, const uno::Reference< xml::sax::XAttributeList>& xAttrList) -: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList, XML_STYLE_FAMILY_SD_PAGEMASTERCONEXT_ID), - mpPageMasterStyle( nullptr ) +: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList, XML_STYLE_FAMILY_SD_PAGEMASTERCONEXT_ID) { // set family to something special at SvXMLStyleContext // for differences in search-methods @@ -405,16 +404,6 @@ SdXMLPageMasterContext::SdXMLPageMasterContext( } } -SdXMLPageMasterContext::~SdXMLPageMasterContext() -{ - // release remembered contexts, they are no longer needed - if(mpPageMasterStyle) - { - mpPageMasterStyle->ReleaseRef(); - mpPageMasterStyle = nullptr; - } -} - SvXMLImportContext *SdXMLPageMasterContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -424,12 +413,9 @@ SvXMLImportContext *SdXMLPageMasterContext::CreateChildContext( if(nPrefix == XML_NAMESPACE_STYLE && IsXMLToken( rLocalName, XML_PAGE_LAYOUT_PROPERTIES) ) { - pContext = new SdXMLPageMasterStyleContext(GetSdImport(), nPrefix, rLocalName, xAttrList); - - // remember SdXMLPresentationPlaceholderContext for later evaluation - pContext->AddFirstRef(); - DBG_ASSERT(!mpPageMasterStyle, "PageMasterStyle is set, there seem to be two of them (!)"); - mpPageMasterStyle = static_cast<SdXMLPageMasterStyleContext*>(pContext); + DBG_ASSERT(!mxPageMasterStyle.is(), "PageMasterStyle is set, there seem to be two of them (!)"); + mxPageMasterStyle.set(new SdXMLPageMasterStyleContext(GetSdImport(), nPrefix, rLocalName, xAttrList)); + pContext = mxPageMasterStyle.get(); } // call base class @@ -465,10 +451,6 @@ SdXMLPresentationPageLayoutContext::SdXMLPresentationPageLayoutContext( } } -SdXMLPresentationPageLayoutContext::~SdXMLPresentationPageLayoutContext() -{ -} - SvXMLImportContext *SdXMLPresentationPageLayoutContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -478,13 +460,13 @@ SvXMLImportContext *SdXMLPresentationPageLayoutContext::CreateChildContext( if(nPrefix == XML_NAMESPACE_PRESENTATION && IsXMLToken( rLocalName, XML_PLACEHOLDER ) ) { + const uno::Reference< SdXMLPresentationPlaceholderContext > xContext{ + new SdXMLPresentationPlaceholderContext(GetSdImport(), nPrefix, rLocalName, xAttrList)}; // presentation:placeholder inside style:presentation-page-layout context - pContext = new SdXMLPresentationPlaceholderContext( - GetSdImport(), nPrefix, rLocalName, xAttrList); + pContext = xContext.get(); // remember SdXMLPresentationPlaceholderContext for later evaluation - pContext->AddFirstRef(); - maList.push_back( static_cast<SdXMLPresentationPlaceholderContext*>(pContext) ); + maList.push_back( xContext ); } // call base class @@ -501,7 +483,7 @@ void SdXMLPresentationPageLayoutContext::EndElement() // at the moment only use number of types used there if( !maList.empty() ) { - SdXMLPresentationPlaceholderContext* pObj0 = maList[ 0 ]; + SdXMLPresentationPlaceholderContext* pObj0 = maList[ 0 ].get(); if( pObj0->GetName() == "handout" ) { switch( maList.size() ) @@ -543,7 +525,7 @@ void SdXMLPresentationPageLayoutContext::EndElement() } case 2: { - SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ]; + SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ].get(); if( pObj1->GetName() == "subtitle" ) { @@ -586,8 +568,8 @@ void SdXMLPresentationPageLayoutContext::EndElement() } case 3: { - SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ]; - SdXMLPresentationPlaceholderContext* pObj2 = maList[ 2 ]; + SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ].get(); + SdXMLPresentationPlaceholderContext* pObj2 = maList[ 2 ].get(); if( pObj1->GetName() == "outline" ) { @@ -651,8 +633,8 @@ void SdXMLPresentationPageLayoutContext::EndElement() } case 4: { - SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ]; - SdXMLPresentationPlaceholderContext* pObj2 = maList[ 2 ]; + SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ].get(); + SdXMLPresentationPlaceholderContext* pObj2 = maList[ 2 ].get(); if( pObj1->GetName() == "object" ) { @@ -673,7 +655,7 @@ void SdXMLPresentationPageLayoutContext::EndElement() } case 5: { - SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ]; + SdXMLPresentationPlaceholderContext* pObj1 = maList[ 1 ].get(); if( pObj1->GetName() == "object" ) { @@ -700,8 +682,6 @@ void SdXMLPresentationPageLayoutContext::EndElement() } // release remembered contexts, they are no longer needed - for ( size_t i = maList.size(); i > 0; ) - maList[ --i ]->ReleaseRef(); maList.clear(); } } @@ -1459,13 +1439,6 @@ SdXMLMasterStylesContext::SdXMLMasterStylesContext( { } -SdXMLMasterStylesContext::~SdXMLMasterStylesContext() -{ - for ( size_t i = maMasterPageList.size(); i > 0; ) - maMasterPageList[ --i ]->ReleaseRef(); - maMasterPageList.clear(); -} - SvXMLImportContext* SdXMLMasterStylesContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -1501,11 +1474,11 @@ SvXMLImportContext* SdXMLMasterStylesContext::CreateChildContext( uno::Reference< drawing::XShapes > xNewShapes(xNewMasterPage, uno::UNO_QUERY); if(xNewShapes.is() && GetSdImport().GetShapeImport()->GetStylesContext()) { - pContext = new SdXMLMasterPageContext(GetSdImport(), - nPrefix, rLocalName, xAttrList, xNewShapes); - - pContext->AddFirstRef(); - maMasterPageList.push_back( static_cast<SdXMLMasterPageContext*>(pContext) ); + const uno::Reference<SdXMLMasterPageContext> xContext{ + new SdXMLMasterPageContext(GetSdImport(), + nPrefix, rLocalName, xAttrList, xNewShapes)}; + pContext = xContext.get(); + maMasterPageList.push_back(xContext); } } } diff --git a/xmloff/source/draw/ximpstyl.hxx b/xmloff/source/draw/ximpstyl.hxx index 6e1c5c0..788e3e4 100644 --- a/xmloff/source/draw/ximpstyl.hxx +++ b/xmloff/source/draw/ximpstyl.hxx @@ -68,7 +68,7 @@ public: class SdXMLPageMasterContext: public SvXMLStyleContext { OUString msName; - SdXMLPageMasterStyleContext*mpPageMasterStyle; + css::uno::Reference<SdXMLPageMasterStyleContext> mxPageMasterStyle; const SdXMLImport& GetSdImport() const { return static_cast<const SdXMLImport&>(GetImport()); } SdXMLImport& GetSdImport() { return static_cast<SdXMLImport&>(GetImport()); } @@ -80,13 +80,12 @@ public: sal_uInt16 nPrfx, const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList); - virtual ~SdXMLPageMasterContext(); virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; - const SdXMLPageMasterStyleContext* GetPageMasterStyle() const { return mpPageMasterStyle; } + const SdXMLPageMasterStyleContext* GetPageMasterStyle() const { return mxPageMasterStyle.get(); } }; // style:masterpage context @@ -148,7 +147,7 @@ public: class SdXMLPresentationPageLayoutContext: public SvXMLStyleContext { OUString msName; - std::vector< SdXMLPresentationPlaceholderContext* > + std::vector< css::uno::Reference< SdXMLPresentationPlaceholderContext > > maList; sal_uInt16 mnTypeId; @@ -162,7 +161,6 @@ public: sal_uInt16 nPrfx, const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList); - virtual ~SdXMLPresentationPageLayoutContext(); virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -228,7 +226,7 @@ public: class SdXMLMasterStylesContext : public SvXMLImportContext { - std::vector< SdXMLMasterPageContext* > maMasterPageList; + std::vector< css::uno::Reference< SdXMLMasterPageContext > > maMasterPageList; const SdXMLImport& GetSdImport() const { return static_cast<const SdXMLImport&>(GetImport()); } SdXMLImport& GetSdImport() { return static_cast<SdXMLImport&>(GetImport()); } @@ -238,7 +236,6 @@ public: SdXMLMasterStylesContext( SdXMLImport& rImport, const OUString& rLName); - virtual ~SdXMLMasterStylesContext(); virtual SvXMLImportContext* CreateChildContext( sal_uInt16 nPrefix, commit 3ef084c9bd7a7952a0e69efb9dbda81473c7856b Author: David Tardon <[email protected]> Date: Thu Sep 8 11:18:15 2016 +0200 remove direct memory management Change-Id: Id0278f15e0c46a32cf07900dffdf27b3acb2649c diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx index e9bc24f..3042e03 100644 --- a/include/xmloff/shapeimport.hxx +++ b/include/xmloff/shapeimport.hxx @@ -204,7 +204,7 @@ protected: SvXMLImport& mrImport; // list for local light contexts - ::std::vector< SdXML3DLightContext* > + ::std::vector< css::uno::Reference< SdXML3DLightContext > > maList; // local parameters which need to be read @@ -228,7 +228,6 @@ protected: public: SdXML3DSceneAttributesHelper( SvXMLImport& rImporter ); - ~SdXML3DSceneAttributesHelper(); /** creates a 3d light context and adds it to the internal list for later processing */ SvXMLImportContext * create3DLightContext( sal_uInt16 nPrfx, const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList); diff --git a/xmloff/source/draw/ximp3dscene.cxx b/xmloff/source/draw/ximp3dscene.cxx index 7680acf..31ce368 100644 --- a/xmloff/source/draw/ximp3dscene.cxx +++ b/xmloff/source/draw/ximp3dscene.cxx @@ -226,24 +226,15 @@ SdXML3DSceneAttributesHelper::SdXML3DSceneAttributesHelper( SvXMLImport& rImport { } -SdXML3DSceneAttributesHelper::~SdXML3DSceneAttributesHelper() -{ - // release remembered light contexts, they are no longer needed - for ( size_t i = maList.size(); i > 0; ) - maList[ --i ]->ReleaseRef(); - maList.clear(); -} - /** creates a 3d light context and adds it to the internal list for later processing */ SvXMLImportContext * SdXML3DSceneAttributesHelper::create3DLightContext( sal_uInt16 nPrfx, const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList) { - SvXMLImportContext* pContext = new SdXML3DLightContext(mrImport, nPrfx, rLName, xAttrList); + const uno::Reference<SdXML3DLightContext> xContext{new SdXML3DLightContext(mrImport, nPrfx, rLName, xAttrList)}; // remember SdXML3DLightContext for later evaluation - pContext->AddFirstRef(); - maList.push_back( static_cast<SdXML3DLightContext*>(pContext) ); + maList.push_back(xContext); - return pContext; + return xContext.get(); } /** this should be called for each scene attribute */ @@ -376,7 +367,7 @@ void SdXML3DSceneAttributesHelper::setSceneAttributes( const css::uno::Reference // set lights for( size_t a = 0; a < maList.size(); a++) { - SdXML3DLightContext* pCtx = maList[ a ]; + SdXML3DLightContext* pCtx = maList[ a ].get(); // set anys aAny <<= pCtx->GetDiffuseColor(); commit 4f776e0ff2d7b3635dc504c3251dddd03f76c205 Author: David Tardon <[email protected]> Date: Thu Sep 8 11:11:18 2016 +0200 drop useless comments Change-Id: Idbecb59bbefb4e63e1de80b8a28033be31e3dd58 diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 26f77da..016195f 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -208,7 +208,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() }; mpGroupShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aGroupShapeElemTokenMap); - } // if(!mpGroupShapeElemTokenMap) + } return *mpGroupShapeElemTokenMap; } @@ -231,7 +231,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() }; mpFrameShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aFrameShapeElemTokenMap); - } // if(!mpFrameShapeElemTokenMap) + } return *mpFrameShapeElemTokenMap; } @@ -251,7 +251,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() }; mp3DSceneShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSceneShapeElemTokenMap); - } // if(!mp3DSceneShapeElemTokenMap) + } return *mp3DSceneShapeElemTokenMap; } @@ -268,7 +268,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() }; mp3DObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DObjectAttrTokenMap); - } // if(!mp3DObjectAttrTokenMap) + } return *mp3DObjectAttrTokenMap; } @@ -285,7 +285,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() }; mp3DPolygonBasedAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DPolygonBasedAttrTokenMap); - } // if(!mp3DPolygonBasedAttrTokenMap) + } return *mp3DPolygonBasedAttrTokenMap; } @@ -302,7 +302,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() }; mp3DCubeObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DCubeObjectAttrTokenMap); - } // if(!mp3DCubeObjectAttrTokenMap) + } return *mp3DCubeObjectAttrTokenMap; } @@ -319,7 +319,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() }; mp3DSphereObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSphereObjectAttrTokenMap); - } // if(!mp3DSphereObjectAttrTokenMap) + } return *mp3DSphereObjectAttrTokenMap; } @@ -338,7 +338,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() }; mp3DLightAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DLightAttrTokenMap); - } // if(!mp3DLightAttrTokenMap) + } return *mp3DLightAttrTokenMap; } commit 4da3d1e3d7469f9ee3de5f183fe0e94cedcb3b1d Author: David Tardon <[email protected]> Date: Thu Sep 8 11:10:27 2016 +0200 fix indentation Change-Id: I0292b9408b0ff74f133daba955a81d9ac706b336 diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 6e2ecb7..26f77da 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -178,34 +178,34 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() if(!mpGroupShapeElemTokenMap) { static const SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_G, XML_TOK_GROUP_GROUP }, - { XML_NAMESPACE_DRAW, XML_RECT, XML_TOK_GROUP_RECT }, - { XML_NAMESPACE_DRAW, XML_LINE, XML_TOK_GROUP_LINE }, - { XML_NAMESPACE_DRAW, XML_CIRCLE, XML_TOK_GROUP_CIRCLE }, - { XML_NAMESPACE_DRAW, XML_ELLIPSE, XML_TOK_GROUP_ELLIPSE }, - { XML_NAMESPACE_DRAW, XML_POLYGON, XML_TOK_GROUP_POLYGON }, - { XML_NAMESPACE_DRAW, XML_POLYLINE, XML_TOK_GROUP_POLYLINE }, - { XML_NAMESPACE_DRAW, XML_PATH, XML_TOK_GROUP_PATH }, - - { XML_NAMESPACE_DRAW, XML_CONTROL, XML_TOK_GROUP_CONTROL }, - { XML_NAMESPACE_DRAW, XML_CONNECTOR, XML_TOK_GROUP_CONNECTOR }, - { XML_NAMESPACE_DRAW, XML_MEASURE, XML_TOK_GROUP_MEASURE }, - { XML_NAMESPACE_DRAW, XML_PAGE_THUMBNAIL, XML_TOK_GROUP_PAGE }, - { XML_NAMESPACE_DRAW, XML_CAPTION, XML_TOK_GROUP_CAPTION }, - - { XML_NAMESPACE_CHART, XML_CHART, XML_TOK_GROUP_CHART }, - { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_GROUP_3DSCENE }, - - { XML_NAMESPACE_DRAW, XML_FRAME, XML_TOK_GROUP_FRAME }, - { XML_NAMESPACE_DRAW, XML_CUSTOM_SHAPE, XML_TOK_GROUP_CUSTOM_SHAPE }, - - { XML_NAMESPACE_DRAW, XML_CUSTOM_SHAPE, XML_TOK_GROUP_CUSTOM_SHAPE }, - { XML_NAMESPACE_OFFICE, XML_ANNOTATION, XML_TOK_GROUP_ANNOTATION }, - { XML_NAMESPACE_DRAW, XML_A, XML_TOK_GROUP_A }, - - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DRAW, XML_G, XML_TOK_GROUP_GROUP }, + { XML_NAMESPACE_DRAW, XML_RECT, XML_TOK_GROUP_RECT }, + { XML_NAMESPACE_DRAW, XML_LINE, XML_TOK_GROUP_LINE }, + { XML_NAMESPACE_DRAW, XML_CIRCLE, XML_TOK_GROUP_CIRCLE }, + { XML_NAMESPACE_DRAW, XML_ELLIPSE, XML_TOK_GROUP_ELLIPSE }, + { XML_NAMESPACE_DRAW, XML_POLYGON, XML_TOK_GROUP_POLYGON }, + { XML_NAMESPACE_DRAW, XML_POLYLINE, XML_TOK_GROUP_POLYLINE }, + { XML_NAMESPACE_DRAW, XML_PATH, XML_TOK_GROUP_PATH }, + + { XML_NAMESPACE_DRAW, XML_CONTROL, XML_TOK_GROUP_CONTROL }, + { XML_NAMESPACE_DRAW, XML_CONNECTOR, XML_TOK_GROUP_CONNECTOR }, + { XML_NAMESPACE_DRAW, XML_MEASURE, XML_TOK_GROUP_MEASURE }, + { XML_NAMESPACE_DRAW, XML_PAGE_THUMBNAIL, XML_TOK_GROUP_PAGE }, + { XML_NAMESPACE_DRAW, XML_CAPTION, XML_TOK_GROUP_CAPTION }, + + { XML_NAMESPACE_CHART, XML_CHART, XML_TOK_GROUP_CHART }, + { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_GROUP_3DSCENE }, + + { XML_NAMESPACE_DRAW, XML_FRAME, XML_TOK_GROUP_FRAME }, + { XML_NAMESPACE_DRAW, XML_CUSTOM_SHAPE, XML_TOK_GROUP_CUSTOM_SHAPE }, + + { XML_NAMESPACE_DRAW, XML_CUSTOM_SHAPE, XML_TOK_GROUP_CUSTOM_SHAPE }, + { XML_NAMESPACE_OFFICE, XML_ANNOTATION, XML_TOK_GROUP_ANNOTATION }, + { XML_NAMESPACE_DRAW, XML_A, XML_TOK_GROUP_A }, + + XML_TOKEN_MAP_END + }; mpGroupShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aGroupShapeElemTokenMap); } // if(!mpGroupShapeElemTokenMap) @@ -218,17 +218,17 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() if(!mpFrameShapeElemTokenMap) { static const SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_TOK_FRAME_TEXT_BOX }, - { XML_NAMESPACE_DRAW, XML_IMAGE, XML_TOK_FRAME_IMAGE }, - { XML_NAMESPACE_DRAW, XML_OBJECT, XML_TOK_FRAME_OBJECT }, - { XML_NAMESPACE_DRAW, XML_OBJECT_OLE, XML_TOK_FRAME_OBJECT_OLE }, - { XML_NAMESPACE_DRAW, XML_PLUGIN, XML_TOK_FRAME_PLUGIN }, - { XML_NAMESPACE_DRAW, XML_FLOATING_FRAME, XML_TOK_FRAME_FLOATING_FRAME}, - { XML_NAMESPACE_DRAW, XML_APPLET, XML_TOK_FRAME_APPLET }, - { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_FRAME_TABLE }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_TOK_FRAME_TEXT_BOX }, + { XML_NAMESPACE_DRAW, XML_IMAGE, XML_TOK_FRAME_IMAGE }, + { XML_NAMESPACE_DRAW, XML_OBJECT, XML_TOK_FRAME_OBJECT }, + { XML_NAMESPACE_DRAW, XML_OBJECT_OLE, XML_TOK_FRAME_OBJECT_OLE }, + { XML_NAMESPACE_DRAW, XML_PLUGIN, XML_TOK_FRAME_PLUGIN }, + { XML_NAMESPACE_DRAW, XML_FLOATING_FRAME, XML_TOK_FRAME_FLOATING_FRAME}, + { XML_NAMESPACE_DRAW, XML_APPLET, XML_TOK_FRAME_APPLET }, + { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_FRAME_TABLE }, + XML_TOKEN_MAP_END + }; mpFrameShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aFrameShapeElemTokenMap); } // if(!mpFrameShapeElemTokenMap) @@ -241,14 +241,14 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() if(!mp3DSceneShapeElemTokenMap) { static const SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = -{ - { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_3DSCENE_3DSCENE }, - { XML_NAMESPACE_DR3D, XML_CUBE, XML_TOK_3DSCENE_3DCUBE }, - { XML_NAMESPACE_DR3D, XML_SPHERE, XML_TOK_3DSCENE_3DSPHERE }, - { XML_NAMESPACE_DR3D, XML_ROTATE, XML_TOK_3DSCENE_3DLATHE }, - { XML_NAMESPACE_DR3D, XML_EXTRUDE, XML_TOK_3DSCENE_3DEXTRUDE }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_3DSCENE_3DSCENE }, + { XML_NAMESPACE_DR3D, XML_CUBE, XML_TOK_3DSCENE_3DCUBE }, + { XML_NAMESPACE_DR3D, XML_SPHERE, XML_TOK_3DSCENE_3DSPHERE }, + { XML_NAMESPACE_DR3D, XML_ROTATE, XML_TOK_3DSCENE_3DLATHE }, + { XML_NAMESPACE_DR3D, XML_EXTRUDE, XML_TOK_3DSCENE_3DEXTRUDE }, + XML_TOKEN_MAP_END + }; mp3DSceneShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSceneShapeElemTokenMap); } // if(!mp3DSceneShapeElemTokenMap) @@ -261,11 +261,11 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() if(!mp3DObjectAttrTokenMap) { static const SvXMLTokenMapEntry a3DObjectAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_3DOBJECT_DRAWSTYLE_NAME }, - { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DOBJECT_TRANSFORM }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_3DOBJECT_DRAWSTYLE_NAME }, + { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DOBJECT_TRANSFORM }, + XML_TOKEN_MAP_END + }; mp3DObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DObjectAttrTokenMap); } // if(!mp3DObjectAttrTokenMap) @@ -278,11 +278,11 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() if(!mp3DPolygonBasedAttrTokenMap) { static const SvXMLTokenMapEntry a3DPolygonBasedAttrTokenMap[] = -{ - { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_3DPOLYGONBASED_VIEWBOX }, - { XML_NAMESPACE_SVG, XML_D, XML_TOK_3DPOLYGONBASED_D }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_3DPOLYGONBASED_VIEWBOX }, + { XML_NAMESPACE_SVG, XML_D, XML_TOK_3DPOLYGONBASED_D }, + XML_TOKEN_MAP_END + }; mp3DPolygonBasedAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DPolygonBasedAttrTokenMap); } // if(!mp3DPolygonBasedAttrTokenMap) @@ -295,11 +295,11 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() if(!mp3DCubeObjectAttrTokenMap) { static const SvXMLTokenMapEntry a3DCubeObjectAttrTokenMap[] = -{ - { XML_NAMESPACE_DR3D, XML_MIN_EDGE, XML_TOK_3DCUBEOBJ_MINEDGE }, - { XML_NAMESPACE_DR3D, XML_MAX_EDGE, XML_TOK_3DCUBEOBJ_MAXEDGE }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DR3D, XML_MIN_EDGE, XML_TOK_3DCUBEOBJ_MINEDGE }, + { XML_NAMESPACE_DR3D, XML_MAX_EDGE, XML_TOK_3DCUBEOBJ_MAXEDGE }, + XML_TOKEN_MAP_END + }; mp3DCubeObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DCubeObjectAttrTokenMap); } // if(!mp3DCubeObjectAttrTokenMap) @@ -312,11 +312,11 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() if(!mp3DSphereObjectAttrTokenMap) { static const SvXMLTokenMapEntry a3DSphereObjectAttrTokenMap[] = -{ - { XML_NAMESPACE_DR3D, XML_CENTER, XML_TOK_3DSPHEREOBJ_CENTER }, - { XML_NAMESPACE_DR3D, XML_SIZE, XML_TOK_3DSPHEREOBJ_SIZE }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DR3D, XML_CENTER, XML_TOK_3DSPHEREOBJ_CENTER }, + { XML_NAMESPACE_DR3D, XML_SIZE, XML_TOK_3DSPHEREOBJ_SIZE }, + XML_TOKEN_MAP_END + }; mp3DSphereObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSphereObjectAttrTokenMap); } // if(!mp3DSphereObjectAttrTokenMap) @@ -329,13 +329,13 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() if(!mp3DLightAttrTokenMap) { static const SvXMLTokenMapEntry a3DLightAttrTokenMap[] = -{ - { XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR, XML_TOK_3DLIGHT_DIFFUSE_COLOR }, - { XML_NAMESPACE_DR3D, XML_DIRECTION, XML_TOK_3DLIGHT_DIRECTION }, - { XML_NAMESPACE_DR3D, XML_ENABLED, XML_TOK_3DLIGHT_ENABLED }, - { XML_NAMESPACE_DR3D, XML_SPECULAR, XML_TOK_3DLIGHT_SPECULAR }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR, XML_TOK_3DLIGHT_DIFFUSE_COLOR }, + { XML_NAMESPACE_DR3D, XML_DIRECTION, XML_TOK_3DLIGHT_DIRECTION }, + { XML_NAMESPACE_DR3D, XML_ENABLED, XML_TOK_3DLIGHT_ENABLED }, + { XML_NAMESPACE_DR3D, XML_SPECULAR, XML_TOK_3DLIGHT_SPECULAR }, + XML_TOKEN_MAP_END + }; mp3DLightAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DLightAttrTokenMap); } // if(!mp3DLightAttrTokenMap) commit 45df4baf4e311e3f0e785bd7b2af9f65ffc436e8 Author: David Tardon <[email protected]> Date: Thu Sep 8 11:09:32 2016 +0200 use std::unique_ptr Change-Id: Ic6ebe839fa22e6a7b9904ad00877eddd78331ba4 diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx index eda682d..e9bc24f 100644 --- a/include/xmloff/shapeimport.hxx +++ b/include/xmloff/shapeimport.hxx @@ -279,14 +279,14 @@ class XMLOFF_DLLPUBLIC XMLShapeImportHelper : public salhelper::SimpleReferenceO css::uno::Reference<SvXMLStylesContext> mxAutoStylesContext; // contexts for xShape contents TokenMaps - SvXMLTokenMap* mpGroupShapeElemTokenMap; - SvXMLTokenMap* mpFrameShapeElemTokenMap; - SvXMLTokenMap* mp3DSceneShapeElemTokenMap; - SvXMLTokenMap* mp3DObjectAttrTokenMap; - SvXMLTokenMap* mp3DPolygonBasedAttrTokenMap; - SvXMLTokenMap* mp3DCubeObjectAttrTokenMap; - SvXMLTokenMap* mp3DSphereObjectAttrTokenMap; - SvXMLTokenMap* mp3DLightAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpGroupShapeElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpFrameShapeElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DSceneShapeElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DObjectAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DPolygonBasedAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DCubeObjectAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DSphereObjectAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mp3DLightAttrTokenMap; const OUString msStartShape; const OUString msEndShape; diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 3f40c56..6e2ecb7 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <o3tl/make_unique.hxx> + #include <tools/debug.hxx> #include <com/sun/star/text/PositionLayoutDir.hpp> @@ -113,14 +115,6 @@ XMLShapeImportHelper::XMLShapeImportHelper( mpPropertySetMapper(nullptr), mpPresPagePropsMapper(nullptr), - mpGroupShapeElemTokenMap(nullptr), - mpFrameShapeElemTokenMap(nullptr), - mp3DSceneShapeElemTokenMap(nullptr), - mp3DObjectAttrTokenMap(nullptr), - mp3DPolygonBasedAttrTokenMap(nullptr), - mp3DCubeObjectAttrTokenMap(nullptr), - mp3DSphereObjectAttrTokenMap(nullptr), - mp3DLightAttrTokenMap(nullptr), msStartShape("StartShape"), msEndShape("EndShape"), msStartGluePointIndex("StartGluePointIndex"), @@ -171,16 +165,6 @@ XMLShapeImportHelper::~XMLShapeImportHelper() // cleanup presPage mapper, decrease refcount. Should lead to destruction. mpPresPagePropsMapper.clear(); - delete mpGroupShapeElemTokenMap; - delete mpFrameShapeElemTokenMap; - - delete mp3DSceneShapeElemTokenMap; - delete mp3DObjectAttrTokenMap; - delete mp3DPolygonBasedAttrTokenMap; - delete mp3DCubeObjectAttrTokenMap; - delete mp3DSphereObjectAttrTokenMap; - delete mp3DLightAttrTokenMap; - // Styles or AutoStyles context? if(mxStylesContext.is()) mxStylesContext->Clear(); @@ -223,7 +207,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() XML_TOKEN_MAP_END }; - mpGroupShapeElemTokenMap = new SvXMLTokenMap(aGroupShapeElemTokenMap); + mpGroupShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aGroupShapeElemTokenMap); } // if(!mpGroupShapeElemTokenMap) return *mpGroupShapeElemTokenMap; @@ -246,7 +230,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() XML_TOKEN_MAP_END }; - mpFrameShapeElemTokenMap = new SvXMLTokenMap(aFrameShapeElemTokenMap); + mpFrameShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aFrameShapeElemTokenMap); } // if(!mpFrameShapeElemTokenMap) return *mpFrameShapeElemTokenMap; @@ -266,7 +250,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() XML_TOKEN_MAP_END }; - mp3DSceneShapeElemTokenMap = new SvXMLTokenMap(a3DSceneShapeElemTokenMap); + mp3DSceneShapeElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSceneShapeElemTokenMap); } // if(!mp3DSceneShapeElemTokenMap) return *mp3DSceneShapeElemTokenMap; @@ -283,7 +267,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() XML_TOKEN_MAP_END }; - mp3DObjectAttrTokenMap = new SvXMLTokenMap(a3DObjectAttrTokenMap); + mp3DObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DObjectAttrTokenMap); } // if(!mp3DObjectAttrTokenMap) return *mp3DObjectAttrTokenMap; @@ -300,7 +284,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() XML_TOKEN_MAP_END }; - mp3DPolygonBasedAttrTokenMap = new SvXMLTokenMap(a3DPolygonBasedAttrTokenMap); + mp3DPolygonBasedAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DPolygonBasedAttrTokenMap); } // if(!mp3DPolygonBasedAttrTokenMap) return *mp3DPolygonBasedAttrTokenMap; @@ -317,7 +301,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() XML_TOKEN_MAP_END }; - mp3DCubeObjectAttrTokenMap = new SvXMLTokenMap(a3DCubeObjectAttrTokenMap); + mp3DCubeObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DCubeObjectAttrTokenMap); } // if(!mp3DCubeObjectAttrTokenMap) return *mp3DCubeObjectAttrTokenMap; @@ -334,7 +318,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() XML_TOKEN_MAP_END }; - mp3DSphereObjectAttrTokenMap = new SvXMLTokenMap(a3DSphereObjectAttrTokenMap); + mp3DSphereObjectAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DSphereObjectAttrTokenMap); } // if(!mp3DSphereObjectAttrTokenMap) return *mp3DSphereObjectAttrTokenMap; @@ -353,7 +337,7 @@ const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() XML_TOKEN_MAP_END }; - mp3DLightAttrTokenMap = new SvXMLTokenMap(a3DLightAttrTokenMap); + mp3DLightAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(a3DLightAttrTokenMap); } // if(!mp3DLightAttrTokenMap) return *mp3DLightAttrTokenMap; commit bb35e4dcf986619edb300f4dcd35d54b04dce034 Author: David Tardon <[email protected]> Date: Thu Sep 8 11:05:39 2016 +0200 remove direct memory management Change-Id: I5dd5d9130f11f47c4b48c1aae9748434ac751d95 diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx index db54f5c..eda682d 100644 --- a/include/xmloff/shapeimport.hxx +++ b/include/xmloff/shapeimport.hxx @@ -275,8 +275,8 @@ class XMLOFF_DLLPUBLIC XMLShapeImportHelper : public salhelper::SimpleReferenceO rtl::Reference<SvXMLImportPropertyMapper> mpPresPagePropsMapper; // contexts for Style and AutoStyle import - SvXMLStylesContext* mpStylesContext; - SvXMLStylesContext* mpAutoStylesContext; + css::uno::Reference<SvXMLStylesContext> mxStylesContext; + css::uno::Reference<SvXMLStylesContext> mxAutoStylesContext; // contexts for xShape contents TokenMaps SvXMLTokenMap* mpGroupShapeElemTokenMap; @@ -335,9 +335,9 @@ public: const SvXMLTokenMap& Get3DLightAttrTokenMap(); // Styles and AutoStyles contexts - SvXMLStylesContext* GetStylesContext() const { return mpStylesContext; } + SvXMLStylesContext* GetStylesContext() const { return mxStylesContext.get(); } void SetStylesContext(SvXMLStylesContext* pNew); - SvXMLStylesContext* GetAutoStylesContext() const { return mpAutoStylesContext; } + SvXMLStylesContext* GetAutoStylesContext() const { return mxAutoStylesContext.get(); } void SetAutoStylesContext(SvXMLStylesContext* pNew); // get factories and mappers diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 2402aad..3f40c56 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -113,8 +113,6 @@ XMLShapeImportHelper::XMLShapeImportHelper( mpPropertySetMapper(nullptr), mpPresPagePropsMapper(nullptr), - mpStylesContext(nullptr), - mpAutoStylesContext(nullptr), mpGroupShapeElemTokenMap(nullptr), mpFrameShapeElemTokenMap(nullptr), mp3DSceneShapeElemTokenMap(nullptr), @@ -184,17 +182,11 @@ XMLShapeImportHelper::~XMLShapeImportHelper() delete mp3DLightAttrTokenMap; // Styles or AutoStyles context? - if(mpStylesContext) - { - mpStylesContext->Clear(); - mpStylesContext->ReleaseRef(); - } + if(mxStylesContext.is()) + mxStylesContext->Clear(); - if(mpAutoStylesContext) - { - mpAutoStylesContext->Clear(); - mpAutoStylesContext->ReleaseRef(); - } + if(mxAutoStylesContext.is()) + mxAutoStylesContext->Clear(); } const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() @@ -434,16 +426,12 @@ SvXMLShapeContext* XMLShapeImportHelper::Create3DSceneChildContext( void XMLShapeImportHelper::SetStylesContext(SvXMLStylesContext* pNew) { - mpStylesContext = pNew; - if (mpStylesContext) - mpStylesContext->AddFirstRef(); + mxStylesContext.set(pNew); } void XMLShapeImportHelper::SetAutoStylesContext(SvXMLStylesContext* pNew) { - mpAutoStylesContext = pNew; - if (mpAutoStylesContext) - mpAutoStylesContext->AddFirstRef(); + mxAutoStylesContext.set(pNew); } SvXMLShapeContext* XMLShapeImportHelper::CreateGroupChildContext( commit 8b229333aeb98dae259dac068b67195a8baa1423 Author: David Tardon <[email protected]> Date: Thu Sep 8 10:59:54 2016 +0200 fix indentation Change-Id: I7f2bf5b4ee507cd50904a193bfd64b293cbdd922 diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index 622d3cf..8053989 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -426,15 +426,15 @@ const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() if(!mpBodyElemTokenMap) { static const SvXMLTokenMapEntry aBodyElemTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, - { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, - { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, + { + { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, + { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, + { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, - XML_TOKEN_MAP_END -}; + XML_TOKEN_MAP_END + }; mpBodyElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aBodyElemTokenMap); } @@ -447,12 +447,12 @@ const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() if(!mpStylesElemTokenMap) { static const SvXMLTokenMapEntry aStylesElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, - { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, + { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, + XML_TOKEN_MAP_END + }; mpStylesElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aStylesElemTokenMap); } @@ -465,11 +465,11 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() if(!mpMasterPageElemTokenMap) { static const SvXMLTokenMapEntry aMasterPageElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, + XML_TOKEN_MAP_END + }; mpMasterPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageElemTokenMap); } @@ -482,17 +482,17 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() if(!mpMasterPageAttrTokenMap) { static const SvXMLTokenMapEntry aMasterPageAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, - { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, + { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, + XML_TOKEN_MAP_END + }; mpMasterPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageAttrTokenMap); } @@ -505,10 +505,10 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() if(!mpPageMasterAttrTokenMap) { static const SvXMLTokenMapEntry aPageMasterAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, + XML_TOKEN_MAP_END + }; mpPageMasterAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterAttrTokenMap); } @@ -521,16 +521,16 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() if(!mpPageMasterStyleAttrTokenMap) { static const SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] = -{ - { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, - { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, - { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, - { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, - { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, - { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, - { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, + { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, + { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, + { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, + { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, + { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, + { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, + XML_TOKEN_MAP_END + }; mpPageMasterStyleAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterStyleAttrTokenMap); } @@ -543,20 +543,20 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() if(!mpDrawPageAttrTokenMap) { static const SvXMLTokenMapEntry aDrawPageAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, - { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_DRAWID }, - { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_XMLID }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, - - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, + { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_DRAWID }, + { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_XMLID }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, + + XML_TOKEN_MAP_END + }; mpDrawPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageAttrTokenMap); } @@ -569,12 +569,12 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() if(!mpDrawPageElemTokenMap) { static const SvXMLTokenMapEntry aDrawPageElemTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, - { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, - { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, + { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, + { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, + XML_TOKEN_MAP_END + }; mpDrawPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageElemTokenMap); } @@ -587,14 +587,14 @@ const SvXMLTokenMap& SdXMLImport::GetPresentationPlaceholderAttrTokenMap() if(!mpPresentationPlaceholderAttrTokenMap) { static const SvXMLTokenMapEntry aPresentationPlaceholderAttrTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, - XML_TOKEN_MAP_END -}; + { + { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, + XML_TOKEN_MAP_END + }; mpPresentationPlaceholderAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPresentationPlaceholderAttrTokenMap); } commit d0d596fc737404e1102fa49086eb585c473cc77a Author: David Tardon <[email protected]> Date: Thu Sep 8 10:58:55 2016 +0200 drop useless comments Change-Id: I0493541da0d444ab94676365e93d4e0e5712bbea diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index d1dacf1..622d3cf 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -416,7 +416,7 @@ const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() }; mpDocElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDocElemTokenMap); - } // if(!mpDocElemTokenMap) + } return *mpDocElemTokenMap; } @@ -437,7 +437,7 @@ const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() }; mpBodyElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aBodyElemTokenMap); - } // if(!mpBodyElemTokenMap) + } return *mpBodyElemTokenMap; } @@ -455,7 +455,7 @@ const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() }; mpStylesElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aStylesElemTokenMap); - } // if(!mpStylesElemTokenMap) + } return *mpStylesElemTokenMap; } @@ -472,7 +472,7 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() }; mpMasterPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageElemTokenMap); - } // if(!mpMasterPageElemTokenMap) + } return *mpMasterPageElemTokenMap; } @@ -495,7 +495,7 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() }; mpMasterPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageAttrTokenMap); - } // if(!mpMasterPageAttrTokenMap) + } return *mpMasterPageAttrTokenMap; } @@ -511,7 +511,7 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() }; mpPageMasterAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterAttrTokenMap); - } // if(!mpPageMasterAttrTokenMap) + } return *mpPageMasterAttrTokenMap; } @@ -533,7 +533,7 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() }; mpPageMasterStyleAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterStyleAttrTokenMap); - } // if(!mpPageMasterStyleAttrTokenMap) + } return *mpPageMasterStyleAttrTokenMap; } @@ -559,7 +559,7 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() }; mpDrawPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageAttrTokenMap); - } // if(!mpDrawPageAttrTokenMap) + } return *mpDrawPageAttrTokenMap; } @@ -577,7 +577,7 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() }; mpDrawPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageElemTokenMap); - } // if(!mpDrawPageElemTokenMap) + } return *mpDrawPageElemTokenMap; } @@ -597,7 +597,7 @@ const SvXMLTokenMap& SdXMLImport::GetPresentationPlaceholderAttrTokenMap() }; mpPresentationPlaceholderAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPresentationPlaceholderAttrTokenMap); - } // if(!mpPresentationPlaceholderAttrTokenMap) + } return *mpPresentationPlaceholderAttrTokenMap; } commit db77b0c691cb3725bdef016117aad0f32718af9f Author: David Tardon <[email protected]> Date: Thu Sep 8 10:58:05 2016 +0200 use std::unique_ptr Change-Id: If5e2e9a47480cca5fea09f96e876aece9cb21f9e diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index da92ee2..d1dacf1 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <o3tl/make_unique.hxx> #include <osl/thread.h> #include <comphelper/processfactory.hxx> @@ -283,16 +284,6 @@ SdXMLImport::SdXMLImport( OUString const & implementationName, bool bIsDraw, SvXMLImportFlags nImportFlags ) : SvXMLImport( xContext, implementationName, nImportFlags ), - mpDocElemTokenMap(nullptr), - mpBodyElemTokenMap(nullptr), - mpStylesElemTokenMap(nullptr), - mpMasterPageElemTokenMap(nullptr), - mpMasterPageAttrTokenMap(nullptr), - mpPageMasterAttrTokenMap(nullptr), - mpPageMasterStyleAttrTokenMap(nullptr), - mpDrawPageAttrTokenMap(nullptr), - mpDrawPageElemTokenMap(nullptr), - mpPresentationPlaceholderAttrTokenMap(nullptr), mnNewPageCount(0L), mnNewMasterPageCount(0L), mbIsDraw(bIsDraw), @@ -407,21 +398,6 @@ void SAL_CALL SdXMLImport::initialize( const uno::Sequence< uno::Any >& aArgumen } } -SdXMLImport::~SdXMLImport() throw () -{ - // delete all token maps - delete mpDocElemTokenMap; - delete mpBodyElemTokenMap; - delete mpStylesElemTokenMap; - delete mpMasterPageElemTokenMap; - delete mpMasterPageAttrTokenMap; - delete mpPageMasterAttrTokenMap; - delete mpPageMasterStyleAttrTokenMap; - delete mpDrawPageAttrTokenMap; - delete mpDrawPageElemTokenMap; - delete mpPresentationPlaceholderAttrTokenMap; -} - const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() { if(!mpDocElemTokenMap) @@ -439,7 +415,7 @@ const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() XML_TOKEN_MAP_END }; - mpDocElemTokenMap = new SvXMLTokenMap(aDocElemTokenMap); + mpDocElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDocElemTokenMap); } // if(!mpDocElemTokenMap) return *mpDocElemTokenMap; @@ -460,7 +436,7 @@ const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() XML_TOKEN_MAP_END }; - mpBodyElemTokenMap = new SvXMLTokenMap(aBodyElemTokenMap); + mpBodyElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aBodyElemTokenMap); } // if(!mpBodyElemTokenMap) return *mpBodyElemTokenMap; @@ -478,7 +454,7 @@ const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() XML_TOKEN_MAP_END }; - mpStylesElemTokenMap = new SvXMLTokenMap(aStylesElemTokenMap); + mpStylesElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aStylesElemTokenMap); } // if(!mpStylesElemTokenMap) return *mpStylesElemTokenMap; @@ -495,7 +471,7 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() XML_TOKEN_MAP_END }; - mpMasterPageElemTokenMap = new SvXMLTokenMap(aMasterPageElemTokenMap); + mpMasterPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageElemTokenMap); } // if(!mpMasterPageElemTokenMap) return *mpMasterPageElemTokenMap; @@ -518,7 +494,7 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() XML_TOKEN_MAP_END }; - mpMasterPageAttrTokenMap = new SvXMLTokenMap(aMasterPageAttrTokenMap); + mpMasterPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aMasterPageAttrTokenMap); } // if(!mpMasterPageAttrTokenMap) return *mpMasterPageAttrTokenMap; @@ -534,7 +510,7 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() XML_TOKEN_MAP_END }; - mpPageMasterAttrTokenMap = new SvXMLTokenMap(aPageMasterAttrTokenMap); + mpPageMasterAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterAttrTokenMap); } // if(!mpPageMasterAttrTokenMap) return *mpPageMasterAttrTokenMap; @@ -556,7 +532,7 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() XML_TOKEN_MAP_END }; - mpPageMasterStyleAttrTokenMap = new SvXMLTokenMap(aPageMasterStyleAttrTokenMap); + mpPageMasterStyleAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPageMasterStyleAttrTokenMap); } // if(!mpPageMasterStyleAttrTokenMap) return *mpPageMasterStyleAttrTokenMap; @@ -582,7 +558,7 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() XML_TOKEN_MAP_END }; - mpDrawPageAttrTokenMap = new SvXMLTokenMap(aDrawPageAttrTokenMap); + mpDrawPageAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageAttrTokenMap); } // if(!mpDrawPageAttrTokenMap) return *mpDrawPageAttrTokenMap; @@ -600,7 +576,7 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() XML_TOKEN_MAP_END }; - mpDrawPageElemTokenMap = new SvXMLTokenMap(aDrawPageElemTokenMap); + mpDrawPageElemTokenMap = o3tl::make_unique<SvXMLTokenMap>(aDrawPageElemTokenMap); } // if(!mpDrawPageElemTokenMap) return *mpDrawPageElemTokenMap; @@ -620,7 +596,7 @@ const SvXMLTokenMap& SdXMLImport::GetPresentationPlaceholderAttrTokenMap() XML_TOKEN_MAP_END }; - mpPresentationPlaceholderAttrTokenMap = new SvXMLTokenMap(aPresentationPlaceholderAttrTokenMap); + mpPresentationPlaceholderAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>(aPresentationPlaceholderAttrTokenMap); } // if(!mpPresentationPlaceholderAttrTokenMap) return *mpPresentationPlaceholderAttrTokenMap; diff --git a/xmloff/source/draw/sdxmlimp_impl.hxx b/xmloff/source/draw/sdxmlimp_impl.hxx index 27e3813..e8bc3a1 100644 --- a/xmloff/source/draw/sdxmlimp_impl.hxx +++ b/xmloff/source/draw/sdxmlimp_impl.hxx @@ -27,6 +27,7 @@ #include <com/sun/star/container/XNameAccess.hpp> #include <map> +#include <memory> #include <vector> #include <xmloff/xmlimp.hxx> @@ -170,16 +171,16 @@ class SdXMLImport: public SvXMLImport css::uno::Reference<SdXMLMasterStylesContext> mxMasterStylesContext; // token map lists - SvXMLTokenMap* mpDocElemTokenMap; - SvXMLTokenMap* mpBodyElemTokenMap; - SvXMLTokenMap* mpStylesElemTokenMap; - SvXMLTokenMap* mpMasterPageElemTokenMap; - SvXMLTokenMap* mpMasterPageAttrTokenMap; - SvXMLTokenMap* mpPageMasterAttrTokenMap; - SvXMLTokenMap* mpPageMasterStyleAttrTokenMap; - SvXMLTokenMap* mpDrawPageAttrTokenMap; - SvXMLTokenMap* mpDrawPageElemTokenMap; - SvXMLTokenMap* mpPresentationPlaceholderAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpDocElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpBodyElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpStylesElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpMasterPageElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpMasterPageAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPageMasterAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPageMasterStyleAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpDrawPageAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpDrawPageElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPresentationPlaceholderAttrTokenMap; sal_Int32 mnNewPageCount; sal_Int32 mnNewMasterPageCount; @@ -207,7 +208,6 @@ public: const css::uno::Reference< css::uno::XComponentContext >& xContext, OUString const & implementationName, bool bIsDraw, SvXMLImportFlags nImportFlags ); - virtual ~SdXMLImport() throw (); // XImporter virtual void SAL_CALL setTargetDocument( const css::uno::Reference< css::lang::XComponent >& xDoc ) throw(css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override; commit 5b010b43d7cadc11ebc6756a9b7689c660f3d387 Author: David Tardon <[email protected]> Date: Thu Sep 8 10:53:24 2016 +0200 remove direct memory management Change-Id: I15823666ce8ea1840dc7b927d1a6f2f810edf2d2 diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index a6c9f36..da92ee2 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -283,7 +283,6 @@ SdXMLImport::SdXMLImport( OUString const & implementationName, bool bIsDraw, SvXMLImportFlags nImportFlags ) : SvXMLImport( xContext, implementationName, nImportFlags ), - mpMasterStylesContext(nullptr), mpDocElemTokenMap(nullptr), mpBodyElemTokenMap(nullptr), mpStylesElemTokenMap(nullptr), @@ -410,10 +409,6 @@ void SAL_CALL SdXMLImport::initialize( const uno::Sequence< uno::Any >& aArgumen SdXMLImport::~SdXMLImport() throw () { - // Styles or AutoStyles context? - if(mpMasterStylesContext) - mpMasterStylesContext->ReleaseRef(); - // delete all token maps delete mpDocElemTokenMap; delete mpBodyElemTokenMap; @@ -719,14 +714,9 @@ SvXMLStylesContext *SdXMLImport::CreateAutoStylesContext(const OUString& rLocalN SvXMLImportContext* SdXMLImport::CreateMasterStylesContext(const OUString& rLocalName, const uno::Reference<xml::sax::XAttributeList>&) { - if(mpMasterStylesContext) - return mpMasterStylesContext; - - mpMasterStylesContext = new SdXMLMasterStylesContext( - *this, rLocalName); - mpMasterStylesContext->AddFirstRef(); - - return mpMasterStylesContext; + if (!mxMasterStylesContext.is()) + mxMasterStylesContext.set(new SdXMLMasterStylesContext(*this, rLocalName)); + return mxMasterStylesContext.get(); } SvXMLImportContext *SdXMLImport::CreateFontDeclsContext(const OUString& rLocalName, ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
