include/xmloff/xmlictxt.hxx | 6 - starmath/source/mathmlimport.cxx | 2 xmloff/source/core/xmlictxt.cxx | 1 xmloff/source/core/xmlimp.cxx | 4 - xmloff/source/transform/ChartPlotAreaOASISTContext.cxx | 12 +-- xmloff/source/transform/ChartPlotAreaOASISTContext.hxx | 2 xmloff/source/transform/ChartPlotAreaOOoTContext.cxx | 17 ++--- xmloff/source/transform/ChartPlotAreaOOoTContext.hxx | 9 +- xmloff/source/transform/ControlOOoTContext.cxx | 12 +-- xmloff/source/transform/ControlOOoTContext.hxx | 2 xmloff/source/transform/CreateElemTContext.cxx | 21 ++---- xmloff/source/transform/DeepTContext.cxx | 57 +++++++---------- xmloff/source/transform/DeepTContext.hxx | 7 -- xmloff/source/transform/EventOOoTContext.cxx | 2 xmloff/source/transform/EventOOoTContext.hxx | 2 xmloff/source/transform/FormPropOOoTContext.cxx | 16 ++-- xmloff/source/transform/FormPropOOoTContext.hxx | 2 xmloff/source/transform/FrameOASISTContext.cxx | 18 ++--- xmloff/source/transform/FrameOASISTContext.hxx | 2 xmloff/source/transform/FrameOOoTContext.cxx | 6 - xmloff/source/transform/FrameOOoTContext.hxx | 2 xmloff/source/transform/IgnoreTContext.cxx | 12 +-- xmloff/source/transform/IgnoreTContext.hxx | 2 xmloff/source/transform/MergeElemTContext.cxx | 44 +++++-------- xmloff/source/transform/MergeElemTContext.hxx | 2 xmloff/source/transform/MetaTContext.cxx | 8 +- xmloff/source/transform/MetaTContext.hxx | 2 xmloff/source/transform/NotesTContext.cxx | 14 ++-- xmloff/source/transform/NotesTContext.hxx | 2 xmloff/source/transform/Oasis2OOo.cxx | 4 - xmloff/source/transform/PersAttrListTContext.cxx | 2 xmloff/source/transform/PersAttrListTContext.hxx | 2 xmloff/source/transform/PersMixedContentTContext.cxx | 6 - xmloff/source/transform/StyleOASISTContext.cxx | 8 +- xmloff/source/transform/StyleOASISTContext.hxx | 2 xmloff/source/transform/StyleOOoTContext.cxx | 24 +++---- xmloff/source/transform/StyleOOoTContext.hxx | 2 xmloff/source/transform/TContextVector.hxx | 35 ---------- xmloff/source/transform/TransformerBase.cxx | 38 ++++------- xmloff/source/transform/TransformerBase.hxx | 8 +- xmloff/source/transform/TransformerContext.cxx | 3 xmloff/source/transform/TransformerContext.hxx | 8 +- 42 files changed, 192 insertions(+), 238 deletions(-)
New commits: commit d1385731031fc30cfc2c182279ba5d4feb497328 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Dec 17 16:50:47 2015 +0100 Avoid memory leaks ...when exceptions get thrown while a context owns an rewind map Change-Id: I90d26caa57ef2ff508e6eae05ddbc62cdb3f01ea diff --git a/include/xmloff/xmlictxt.hxx b/include/xmloff/xmlictxt.hxx index 325457c..16bb92f 100644 --- a/include/xmloff/xmlictxt.hxx +++ b/include/xmloff/xmlictxt.hxx @@ -44,9 +44,9 @@ class XMLOFF_DLLPUBLIC SvXMLImportContext : public SvRefBase, SvXMLNamespaceMap *mpRewindMap; - SAL_DLLPRIVATE SvXMLNamespaceMap *GetRewindMap() const - { return mpRewindMap; } - SAL_DLLPRIVATE void SetRewindMap( SvXMLNamespaceMap *p ) { mpRewindMap = p; } + SAL_DLLPRIVATE SvXMLNamespaceMap *TakeRewindMap() + { auto p = mpRewindMap; mpRewindMap = nullptr; return p; } + SAL_DLLPRIVATE void PutRewindMap( SvXMLNamespaceMap *p ) { mpRewindMap = p; } protected: diff --git a/xmloff/source/core/xmlictxt.cxx b/xmloff/source/core/xmlictxt.cxx index aa1aa2e..ff7e439 100644 --- a/xmloff/source/core/xmlictxt.cxx +++ b/xmloff/source/core/xmlictxt.cxx @@ -47,6 +47,7 @@ SvXMLImportContext::SvXMLImportContext( SvXMLImport& rImp ) : SvXMLImportContext::~SvXMLImportContext() { + delete mpRewindMap; } SvXMLImportContext *SvXMLImportContext::CreateChildContext( sal_uInt16 nPrefix, diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index 92fd16a..8ade9dc9 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -731,7 +731,7 @@ void SAL_CALL SvXMLImport::startElement( const OUString& rName, // Remember old namespace map. if( pRewindMap ) - pContext->SetRewindMap( pRewindMap ); + pContext->PutRewindMap( pRewindMap ); // Call a startElement at the new context. pContext->StartElement( xAttrList ); @@ -768,7 +768,7 @@ rName pContext->EndElement(); // Get a namespace map to rewind. - SvXMLNamespaceMap *pRewindMap = pContext->GetRewindMap(); + SvXMLNamespaceMap *pRewindMap = pContext->TakeRewindMap(); // Delete the current context. pContext->ReleaseRef(); diff --git a/xmloff/source/transform/TransformerBase.cxx b/xmloff/source/transform/TransformerBase.cxx index 71a78dd..57120b0 100644 --- a/xmloff/source/transform/TransformerBase.cxx +++ b/xmloff/source/transform/TransformerBase.cxx @@ -303,7 +303,7 @@ void SAL_CALL XMLTransformerBase::startElement( const OUString& rName, // Remember old namespace map. if( pRewindMap ) - xContext->SetRewindMap( pRewindMap ); + xContext->PutRewindMap( pRewindMap ); // Push context on stack. m_pContexts.push_back( xContext ); @@ -336,7 +336,7 @@ rName m_pContexts.pop_back(); // Get a namespace map to rewind. - SvXMLNamespaceMap *pRewindMap = xContext->GetRewindMap(); + SvXMLNamespaceMap *pRewindMap = xContext->TakeRewindMap(); // Delete the current context. xContext = nullptr; diff --git a/xmloff/source/transform/TransformerContext.cxx b/xmloff/source/transform/TransformerContext.cxx index d245314..72adbe6 100644 --- a/xmloff/source/transform/TransformerContext.cxx +++ b/xmloff/source/transform/TransformerContext.cxx @@ -56,6 +56,7 @@ XMLTransformerContext::XMLTransformerContext( XMLTransformerBase& rImp, XMLTransformerContext::~XMLTransformerContext() { + delete m_pRewindMap; } rtl::Reference<XMLTransformerContext> XMLTransformerContext::CreateChildContext( sal_uInt16 nPrefix, diff --git a/xmloff/source/transform/TransformerContext.hxx b/xmloff/source/transform/TransformerContext.hxx index a42e982..e514433 100644 --- a/xmloff/source/transform/TransformerContext.hxx +++ b/xmloff/source/transform/TransformerContext.hxx @@ -39,8 +39,9 @@ class XMLTransformerContext : public ::salhelper::SimpleReferenceObject SvXMLNamespaceMap *m_pRewindMap; - SvXMLNamespaceMap *GetRewindMap() const { return m_pRewindMap; } - void SetRewindMap( SvXMLNamespaceMap *p ) { m_pRewindMap = p; } + SvXMLNamespaceMap *TakeRewindMap() + { auto p = m_pRewindMap; m_pRewindMap = nullptr; return p; } + void PutRewindMap( SvXMLNamespaceMap *p ) { m_pRewindMap = p; } protected: commit c535f115efddc5195d162517ad67ed013229de57 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Dec 17 16:25:47 2015 +0100 This probably should be a reference ...ever since SmXMLContext_Helper was introduced in a0c8015b88b16a4192000bd841eeff594dae9c65 "#81141# MathML->StarMath editable text display" Change-Id: Ida4a4022159138a49c7c94ccb0ed90a8a149b796 diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index 5ba3826..a03f1f4 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -579,7 +579,7 @@ struct SmXMLContext_Helper OUString sFontFamily; OUString sColor; - SmXMLImportContext rContext; + SmXMLImportContext & rContext; explicit SmXMLContext_Helper(SmXMLImportContext &rImport) : nIsBold( -1 ) commit ba3a9184045f7862ee94de8b3210dcbe9558f61a Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Dec 17 14:58:31 2015 +0100 Remove trivial class XMLTransformerContextVector Change-Id: I140614895d5727ffd97681ddd06bf7439fe7a443 diff --git a/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx b/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx index 75a14f5..b18df34 100644 --- a/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx +++ b/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx @@ -19,8 +19,11 @@ #ifndef INCLUDED_XMLOFF_SOURCE_TRANSFORM_CHARTPLOTAREAOOOTCONTEXT_HXX #define INCLUDED_XMLOFF_SOURCE_TRANSFORM_CHARTPLOTAREAOOOTCONTEXT_HXX +#include <sal/config.h> + +#include <vector> + #include "ProcAttrTContext.hxx" -#include "TContextVector.hxx" class XMLAxisOOoContext; diff --git a/xmloff/source/transform/CreateElemTContext.cxx b/xmloff/source/transform/CreateElemTContext.cxx index 2a39c9a..48fad33 100644 --- a/xmloff/source/transform/CreateElemTContext.cxx +++ b/xmloff/source/transform/CreateElemTContext.cxx @@ -17,11 +17,14 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <vector> + #include "CreateElemTContext.hxx" #include "MutableAttrList.hxx" #include "TransformerBase.hxx" #include "TransformerActions.hxx" -#include "TContextVector.hxx" #include "FlatTContext.hxx" #include "AttrTransformerAction.hxx" #include <xmloff/nmspmap.hxx> @@ -49,7 +52,7 @@ void XMLCreateElemTransformerContext::StartElement( { Reference< XAttributeList > xAttrList( rAttrList ); - XMLTransformerContextVector aChildContexts; + std::vector<rtl::Reference<XMLTransformerContext>> aChildContexts; XMLMutableAttributeList *pMutableAttrList = nullptr; XMLTransformerActions *pActions = @@ -106,11 +109,9 @@ void XMLCreateElemTransformerContext::StartElement( } XMLTransformerContext::StartElement( xAttrList ); - XMLTransformerContextVector::iterator aIter = aChildContexts.begin(); - - for( ; aIter != aChildContexts.end(); ++aIter ) + for (auto const & i: aChildContexts) { - (*aIter)->Export(); + i->Export(); } } diff --git a/xmloff/source/transform/DeepTContext.cxx b/xmloff/source/transform/DeepTContext.cxx index d078cff..8668011 100644 --- a/xmloff/source/transform/DeepTContext.cxx +++ b/xmloff/source/transform/DeepTContext.cxx @@ -152,11 +152,9 @@ rtl::Reference<XMLTransformerContext> XMLPersElemContentTContext::CreateChildCon void XMLPersElemContentTContext::ExportContent() { - XMLTransformerContextVector::iterator aIter = m_aChildContexts.begin(); - - for( ; aIter != m_aChildContexts.end(); ++aIter ) + for (auto const & i: m_aChildContexts) { - (*aIter)->Export(); + i->Export(); } } diff --git a/xmloff/source/transform/DeepTContext.hxx b/xmloff/source/transform/DeepTContext.hxx index 8031b15..d1e9c06 100644 --- a/xmloff/source/transform/DeepTContext.hxx +++ b/xmloff/source/transform/DeepTContext.hxx @@ -24,11 +24,10 @@ #include <vector> #include "PersAttrListTContext.hxx" -#include "TContextVector.hxx" class XMLPersElemContentTContext : public XMLPersAttrListTContext { - XMLTransformerContextVector m_aChildContexts; + std::vector<rtl::Reference<XMLTransformerContext>> m_aChildContexts; public: // element content persistence only diff --git a/xmloff/source/transform/TContextVector.hxx b/xmloff/source/transform/TContextVector.hxx deleted file mode 100644 index ed4e62a..0000000 --- a/xmloff/source/transform/TContextVector.hxx +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_XMLOFF_SOURCE_TRANSFORM_TCONTEXTVECTOR_HXX -#define INCLUDED_XMLOFF_SOURCE_TRANSFORM_TCONTEXTVECTOR_HXX - -#include <rtl/ref.hxx> - -#include <vector> -#include "TransformerContext.hxx" - -class XMLTransformerContextVector : - public ::std::vector< ::rtl::Reference< XMLTransformerContext > > -{ -}; - -#endif // INCLUDED_XMLOFF_SOURCE_TRANSFORM_TCONTEXTVECTOR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmloff/source/transform/TransformerBase.cxx b/xmloff/source/transform/TransformerBase.cxx index 4b4341f..71a78dd 100644 --- a/xmloff/source/transform/TransformerBase.cxx +++ b/xmloff/source/transform/TransformerBase.cxx @@ -40,7 +40,6 @@ #include "TransformerTokenMap.hxx" #include "TransformerBase.hxx" -#include "TContextVector.hxx" using namespace ::osl; using namespace ::xmloff::token; @@ -187,7 +186,6 @@ XMLTransformerBase::XMLTransformerBase( XMLTransformerActionInit *pInit, throw () : m_pNamespaceMap( new SvXMLNamespaceMap ), m_pReplaceNamespaceMap( new SvXMLNamespaceMap ), - m_pContexts( new XMLTransformerContextVector ), m_pElemActions( new XMLTransformerActions( pInit ) ), m_pTokenMap( new XMLTransformerTokenMap( pTKMapInit ) ) { @@ -204,7 +202,6 @@ XMLTransformerBase::~XMLTransformerBase() throw () { delete m_pNamespaceMap; delete m_pReplaceNamespaceMap; - delete m_pContexts; delete m_pElemActions; delete m_pTokenMap; } @@ -288,9 +285,9 @@ void SAL_CALL XMLTransformerBase::startElement( const OUString& rName, // If there are contexts already, call a CreateChildContext at the topmost // context. Otherwise, create a default context. ::rtl::Reference < XMLTransformerContext > xContext; - if( !m_pContexts->empty() ) + if( !m_pContexts.empty() ) { - xContext = m_pContexts->back()->CreateChildContext( nPrefix, + xContext = m_pContexts.back()->CreateChildContext( nPrefix, aLocalName, rName, xAttrList ); @@ -309,7 +306,7 @@ void SAL_CALL XMLTransformerBase::startElement( const OUString& rName, xContext->SetRewindMap( pRewindMap ); // Push context on stack. - m_pContexts->push_back( xContext ); + m_pContexts.push_back( xContext ); // Call a startElement at the new context. xContext->StartElement( xAttrList ); @@ -322,10 +319,10 @@ rName ) throw(SAXException, RuntimeException, std::exception) { - if( !m_pContexts->empty() ) + if( !m_pContexts.empty() ) { // Get topmost context - ::rtl::Reference< XMLTransformerContext > xContext = m_pContexts->back(); + ::rtl::Reference< XMLTransformerContext > xContext = m_pContexts.back(); #if OSL_DEBUG_LEVEL > 0 OSL_ENSURE( xContext->GetQName() == rName, @@ -336,7 +333,7 @@ rName xContext->EndElement(); // and remove it from the stack. - m_pContexts->pop_back(); + m_pContexts.pop_back(); // Get a namespace map to rewind. SvXMLNamespaceMap *pRewindMap = xContext->GetRewindMap(); @@ -356,9 +353,9 @@ rName void SAL_CALL XMLTransformerBase::characters( const OUString& rChars ) throw(SAXException, RuntimeException, std::exception) { - if( !m_pContexts->empty() ) + if( !m_pContexts.empty() ) { - m_pContexts->back()->Characters( rChars ); + m_pContexts.back()->Characters( rChars ); } } @@ -852,7 +849,7 @@ XMLMutableAttributeList *XMLTransformerBase::ProcessAttrList( case XML_ATACTION_WRITER_BACK_GRAPHIC_TRANSPARENCY: { // determine, if it's the transparency of a document style - XMLTransformerContext* pFirstContext = (*m_pContexts)[0].get(); + XMLTransformerContext* pFirstContext = m_pContexts[0].get(); OUString aFirstContextLocalName; /* sal_uInt16 nFirstContextPrefix = */ GetNamespaceMap().GetKeyByAttrName( pFirstContext->GetQName(), @@ -1427,23 +1424,20 @@ XMLTokenEnum XMLTransformerBase::GetToken( const OUString& rStr ) const const XMLTransformerContext *XMLTransformerBase::GetCurrentContext() const { - OSL_ENSURE( !m_pContexts->empty(), "empty stack" ); + OSL_ENSURE( !m_pContexts.empty(), "empty stack" ); - return m_pContexts->empty() ? nullptr : m_pContexts->back().get(); + return m_pContexts.empty() ? nullptr : m_pContexts.back().get(); } const XMLTransformerContext *XMLTransformerBase::GetAncestorContext( sal_uInt32 n ) const { - XMLTransformerContextVector::size_type nSize = - m_pContexts->size(); - XMLTransformerContextVector::size_type nPos = - static_cast<XMLTransformerContextVector::size_type>( n ); + auto nSize = m_pContexts.size(); - OSL_ENSURE( nSize >nPos+2 , "invalid context" ); + OSL_ENSURE( nSize > n + 2 , "invalid context" ); - return nSize > nPos+2 ? (*m_pContexts)[nSize-(nPos+2)].get() : nullptr; + return nSize > n + 2 ? m_pContexts[nSize - (n + 2)].get() : nullptr; } bool XMLTransformerBase::isWriter() const diff --git a/xmloff/source/transform/TransformerBase.hxx b/xmloff/source/transform/TransformerBase.hxx index 18ccf6b..4dbb03c 100644 --- a/xmloff/source/transform/TransformerBase.hxx +++ b/xmloff/source/transform/TransformerBase.hxx @@ -20,12 +20,17 @@ #ifndef INCLUDED_XMLOFF_SOURCE_TRANSFORM_TRANSFORMERBASE_HXX #define INCLUDED_XMLOFF_SOURCE_TRANSFORM_TRANSFORMERBASE_HXX +#include <sal/config.h> + +#include <vector> + #include <com/sun/star/xml/sax/SAXParseException.hpp> #include <com/sun/star/xml/sax/SAXException.hpp> #include <com/sun/star/xml/sax/XAttributeList.hpp> #include <com/sun/star/xml/sax/XLocator.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/frame/XModel.hpp> +#include <rtl/ref.hxx> #include <xmloff/xmltoken.hxx> #include "Transformer.hxx" @@ -36,7 +41,6 @@ namespace com { namespace sun { namespace star { class SvXMLNamespaceMap; class XMLTransformerContext; -class XMLTransformerContextVector; class XMLTransformerActions; struct XMLTransformerActionInit; struct TransformerAction_Impl; @@ -60,7 +64,7 @@ class XMLTransformerBase : public XMLTransformer SvXMLNamespaceMap *m_pNamespaceMap; SvXMLNamespaceMap *m_pReplaceNamespaceMap; - XMLTransformerContextVector *m_pContexts; + std::vector<rtl::Reference<XMLTransformerContext>> m_pContexts; XMLTransformerActions *m_pElemActions; XMLTransformerTokenMap *m_pTokenMap; commit 21e72c5f1d315068b0aa6afd3b9750c2ad878dcb Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Dec 17 14:47:56 2015 +0100 Hold XMLTransformerContext by rtl::Reference Change-Id: I60b8d422d53d47537996756aa1b7fb3c26f8383a diff --git a/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx index 95dc076..c0b8c10 100644 --- a/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx +++ b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx @@ -40,7 +40,7 @@ public: ::rtl::Reference< XMLPersAttrListTContext > & rOutCategoriesContext ); virtual ~XMLAxisOASISContext(); - virtual XMLTransformerContext *CreateChildContext( + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, @@ -68,13 +68,13 @@ XMLAxisOASISContext::XMLAxisOASISContext( XMLAxisOASISContext::~XMLAxisOASISContext() {} -XMLTransformerContext * XMLAxisOASISContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLAxisOASISContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< xml::sax::XAttributeList >& xAttrList ) { - XMLTransformerContext * pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_CHART == nPrefix && IsXMLToken( rLocalName, XML_CATEGORIES ) ) @@ -194,18 +194,18 @@ XMLChartPlotAreaOASISTContext::XMLChartPlotAreaOASISTContext( XMLChartPlotAreaOASISTContext::~XMLChartPlotAreaOASISTContext() {} -XMLTransformerContext * XMLChartPlotAreaOASISTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLChartPlotAreaOASISTContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const uno::Reference< xml::sax::XAttributeList >& xAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_CHART == nPrefix && IsXMLToken( rLocalName, XML_AXIS ) ) { - pContext = new XMLAxisOASISContext( GetTransformer(), rQName, m_rCategoriesContext ); + pContext.set(new XMLAxisOASISContext( GetTransformer(), rQName, m_rCategoriesContext )); } else { diff --git a/xmloff/source/transform/ChartPlotAreaOASISTContext.hxx b/xmloff/source/transform/ChartPlotAreaOASISTContext.hxx index e42f10f..fc1bc7b 100644 --- a/xmloff/source/transform/ChartPlotAreaOASISTContext.hxx +++ b/xmloff/source/transform/ChartPlotAreaOASISTContext.hxx @@ -30,7 +30,7 @@ public: XMLTransformerBase & rTransformer, const OUString & rQName ); virtual ~XMLChartPlotAreaOASISTContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx b/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx index 5df9753..16aeecc 100644 --- a/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx +++ b/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx @@ -126,25 +126,25 @@ XMLChartPlotAreaOOoTContext::XMLChartPlotAreaOOoTContext( XMLChartPlotAreaOOoTContext::~XMLChartPlotAreaOOoTContext() {} -XMLTransformerContext * XMLChartPlotAreaOOoTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLChartPlotAreaOOoTContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const uno::Reference< xml::sax::XAttributeList >& xAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_CHART == nPrefix && IsXMLToken( rLocalName, XML_AXIS ) ) { - XMLAxisOOoContext * pAxisContext( new XMLAxisOOoContext( GetTransformer(), rQName )); + rtl::Reference<XMLAxisOOoContext> pAxisContext( new XMLAxisOOoContext( GetTransformer(), rQName )); AddContent( pAxisContext ); - pContext = pAxisContext; + pContext.set(pAxisContext.get()); } else if( XML_NAMESPACE_CHART == nPrefix && IsXMLToken( rLocalName, XML_CATEGORIES ) ) { - pContext = new XMLPersAttrListTContext( GetTransformer(), rQName ); + pContext.set(new XMLPersAttrListTContext( GetTransformer(), rQName )); // put categories at correct axis XMLAxisContextVector::iterator aIter = m_aChildContexts.begin(); @@ -197,12 +197,11 @@ void XMLChartPlotAreaOOoTContext::EndElement() XMLProcAttrTransformerContext::EndElement(); } -void XMLChartPlotAreaOOoTContext::AddContent( XMLAxisOOoContext *pContext ) +void XMLChartPlotAreaOOoTContext::AddContent(rtl::Reference<XMLAxisOOoContext> const & pContext) { - OSL_ENSURE( pContext && pContext->IsPersistent(), + OSL_ENSURE( pContext.is() && pContext->IsPersistent(), "non-persistent context" ); - XMLAxisContextVector::value_type aVal( pContext ); - m_aChildContexts.push_back( aVal ); + m_aChildContexts.push_back(pContext); } diff --git a/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx b/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx index e2ddd63..75a14f5 100644 --- a/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx +++ b/xmloff/source/transform/ChartPlotAreaOOoTContext.hxx @@ -36,7 +36,7 @@ public: XMLTransformerBase & rTransformer, const OUString & rQName ); virtual ~XMLChartPlotAreaOOoTContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; @@ -44,7 +44,7 @@ public: virtual void ExportContent() override; protected: - void AddContent( XMLAxisOOoContext *pContent ); + void AddContent( rtl::Reference<XMLAxisOOoContext> const & pContent ); private: XMLAxisContextVector m_aChildContexts; diff --git a/xmloff/source/transform/ControlOOoTContext.cxx b/xmloff/source/transform/ControlOOoTContext.cxx index bff9ace..1961da4 100644 --- a/xmloff/source/transform/ControlOOoTContext.cxx +++ b/xmloff/source/transform/ControlOOoTContext.cxx @@ -48,19 +48,19 @@ void XMLControlOOoTransformerContext::StartElement( m_xAttrList = new XMLMutableAttributeList( rAttrList, true ); } -XMLTransformerContext *XMLControlOOoTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLControlOOoTransformerContext::CreateChildContext( sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( m_aElemQName.isEmpty() ) { - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, - false, false ); + false, false )); m_aElemQName = rQName; static_cast< XMLMutableAttributeList * >( m_xAttrList.get() ) ->AppendAttributeList( rAttrList ); @@ -72,9 +72,9 @@ XMLTransformerContext *XMLControlOOoTransformerContext::CreateChildContext( } else { - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, - true, true ); + true, true )); } return pContext; } diff --git a/xmloff/source/transform/ControlOOoTContext.hxx b/xmloff/source/transform/ControlOOoTContext.hxx index 350e294..7e345ea 100644 --- a/xmloff/source/transform/ControlOOoTContext.hxx +++ b/xmloff/source/transform/ControlOOoTContext.hxx @@ -34,7 +34,7 @@ public: virtual ~XMLControlOOoTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/CreateElemTContext.cxx b/xmloff/source/transform/CreateElemTContext.cxx index e398646..2a39c9a 100644 --- a/xmloff/source/transform/CreateElemTContext.cxx +++ b/xmloff/source/transform/CreateElemTContext.cxx @@ -87,13 +87,11 @@ void XMLCreateElemTransformerContext::StartElement( (*aIter).second.GetQNamePrefixFromParam1(), ::xmloff::token::GetXMLToken( (*aIter).second.GetQNameTokenFromParam1()) ) ); - XMLTransformerContext *pContext = + rtl::Reference<XMLTransformerContext> pContext( new XMLPersTextContentTContext( GetTransformer(), - aElemQName ); + aElemQName )); pContext->Characters( rAttrValue ); - XMLTransformerContextVector::value_type aVal( - pContext ); - aChildContexts.push_back( aVal ); + aChildContexts.push_back(pContext); pMutableAttrList->RemoveAttributeByIndex( i ); --i; --nAttrCount; diff --git a/xmloff/source/transform/DeepTContext.cxx b/xmloff/source/transform/DeepTContext.cxx index 50bf401..d078cff 100644 --- a/xmloff/source/transform/DeepTContext.cxx +++ b/xmloff/source/transform/DeepTContext.cxx @@ -29,12 +29,11 @@ using namespace ::com::sun::star::uno; using namespace ::com::sun::star::xml::sax; -void XMLPersElemContentTContext::AddContent( XMLTransformerContext *pContext ) +void XMLPersElemContentTContext::AddContent( rtl::Reference<XMLTransformerContext> const & pContext ) { - OSL_ENSURE( pContext && pContext->IsPersistent(), + OSL_ENSURE( pContext.is() && pContext->IsPersistent(), "non-persistent context" ); - XMLTransformerContextVector::value_type aVal( pContext ); - m_aChildContexts.push_back( aVal ); + m_aChildContexts.push_back(pContext); } XMLPersElemContentTContext::XMLPersElemContentTContext( @@ -75,13 +74,13 @@ XMLPersElemContentTContext::~XMLPersElemContentTContext() { } -XMLTransformerContext *XMLPersElemContentTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLPersElemContentTContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; XMLTransformerActions::key_type aKey( nPrefix, rLocalName ); XMLTransformerActions::const_iterator aIter = @@ -92,63 +91,61 @@ XMLTransformerContext *XMLPersElemContentTContext::CreateChildContext( switch( (*aIter).second.m_nActionType ) { case XML_ETACTION_COPY: - pContext = new XMLPersMixedContentTContext( GetTransformer(), - rQName ); + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), + rQName )); break; case XML_ETACTION_COPY_TEXT: - pContext = new XMLPersMixedContentTContext( GetTransformer(), - rQName ); + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), + rQName )); break; case XML_ETACTION_RENAME_ELEM: - pContext = new XMLPersMixedContentTContext( GetTransformer(), rQName, + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), rQName, (*aIter).second.GetQNamePrefixFromParam1(), - (*aIter).second.GetQNameTokenFromParam1() ); + (*aIter).second.GetQNameTokenFromParam1() )); break; case XML_ETACTION_RENAME_ELEM_PROC_ATTRS: - pContext = new XMLPersMixedContentTContext( GetTransformer(), rQName, + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), rQName, (*aIter).second.GetQNamePrefixFromParam1(), (*aIter).second.GetQNameTokenFromParam1(), - static_cast< sal_uInt16 >( (*aIter).second.m_nParam2 ) ); + static_cast< sal_uInt16 >( (*aIter).second.m_nParam2 ) )); break; case XML_ETACTION_RENAME_ELEM_ADD_PROC_ATTR: { - XMLPersMixedContentTContext *pMC = + rtl::Reference<XMLPersMixedContentTContext> pMC( new XMLPersMixedContentTContext( GetTransformer(), rQName, (*aIter).second.GetQNamePrefixFromParam1(), (*aIter).second.GetQNameTokenFromParam1(), static_cast< sal_uInt16 >( - (*aIter).second.m_nParam3 >> 16 ) ); + (*aIter).second.m_nParam3 >> 16 ) )); pMC->AddAttribute( (*aIter).second.GetQNamePrefixFromParam2(), (*aIter).second.GetQNameTokenFromParam2(), static_cast< ::xmloff::token::XMLTokenEnum >( (*aIter).second.m_nParam3 & 0xffff ) ); - pContext = pMC; + pContext.set(pMC.get()); } break; case XML_ETACTION_PROC_ATTRS: - pContext = new XMLPersMixedContentTContext( GetTransformer(), rQName, - static_cast< sal_uInt16 >( (*aIter).second.m_nParam1 ) ); + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), rQName, + static_cast< sal_uInt16 >( (*aIter).second.m_nParam1 ) )); break; default: pContext = GetTransformer().CreateUserDefinedContext( (*aIter).second, rQName, true ); - OSL_ENSURE( pContext && pContext->IsPersistent(), + OSL_ENSURE( pContext.is() && pContext->IsPersistent(), "unknown or not persistent action" ); - if( pContext && !pContext->IsPersistent() ) + if( pContext.is() && !pContext->IsPersistent() ) { - delete pContext; - pContext = nullptr; + pContext.clear(); } break; } } // default is copying - if( !pContext ) - pContext = new XMLPersMixedContentTContext( GetTransformer(), rQName ); - XMLTransformerContextVector::value_type aVal( pContext ); - m_aChildContexts.push_back( aVal ); + if( !pContext.is() ) + pContext.set(new XMLPersMixedContentTContext( GetTransformer(), rQName )); + m_aChildContexts.push_back(pContext); return pContext; } diff --git a/xmloff/source/transform/DeepTContext.hxx b/xmloff/source/transform/DeepTContext.hxx index 3966038..8031b15 100644 --- a/xmloff/source/transform/DeepTContext.hxx +++ b/xmloff/source/transform/DeepTContext.hxx @@ -55,12 +55,12 @@ public: virtual ~XMLPersElemContentTContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; - void AddContent( XMLTransformerContext *pContent ); + void AddContent( rtl::Reference<XMLTransformerContext> const & pContent ); bool HasElementContent() const { diff --git a/xmloff/source/transform/EventOOoTContext.cxx b/xmloff/source/transform/EventOOoTContext.cxx index d3b97b4..7abb997 100644 --- a/xmloff/source/transform/EventOOoTContext.cxx +++ b/xmloff/source/transform/EventOOoTContext.cxx @@ -226,7 +226,7 @@ void XMLEventOOoTransformerContext::EndElement() GetTransformer().GetDocHandler()->endElement( GetExportQName() ); } -XMLTransformerContext * XMLEventOOoTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLEventOOoTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, diff --git a/xmloff/source/transform/EventOOoTContext.hxx b/xmloff/source/transform/EventOOoTContext.hxx index fa7a7e2..b3d879f 100644 --- a/xmloff/source/transform/EventOOoTContext.hxx +++ b/xmloff/source/transform/EventOOoTContext.hxx @@ -42,7 +42,7 @@ public: virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; virtual void EndElement() override; - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/FormPropOOoTContext.cxx b/xmloff/source/transform/FormPropOOoTContext.cxx index 0aea009..fe7653f 100644 --- a/xmloff/source/transform/FormPropOOoTContext.cxx +++ b/xmloff/source/transform/FormPropOOoTContext.cxx @@ -150,36 +150,36 @@ XMLFormPropOOoTransformerContext::~XMLFormPropOOoTransformerContext() { } -XMLTransformerContext *XMLFormPropOOoTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLFormPropOOoTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_FORM == nPrefix && IsXMLToken( rLocalName, XML_PROPERTY_VALUE ) ) { if( m_bIsList ) { - pContext = new XMLFormPropValueTContext_Impl( GetTransformer(), + pContext.set(new XMLFormPropValueTContext_Impl( GetTransformer(), rQName, XML_NAMESPACE_OFFICE, - m_eValueToken ); + m_eValueToken )); } else if( !m_xValueContext.is() ) { m_xValueContext= new XMLFormPropValueTContext_Impl( GetTransformer(), rQName ); - pContext = m_xValueContext.get(); + pContext.set(m_xValueContext.get()); } } // default is ignore - if( !pContext ) - pContext = new XMLIgnoreTransformerContext( GetTransformer(), rQName, - true, true ); + if( !pContext.is() ) + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, + true, true )); return pContext; } diff --git a/xmloff/source/transform/FormPropOOoTContext.hxx b/xmloff/source/transform/FormPropOOoTContext.hxx index 54111ef..6630cc5 100644 --- a/xmloff/source/transform/FormPropOOoTContext.hxx +++ b/xmloff/source/transform/FormPropOOoTContext.hxx @@ -46,7 +46,7 @@ public: virtual ~XMLFormPropOOoTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/FrameOASISTContext.cxx b/xmloff/source/transform/FrameOASISTContext.cxx index 061a60b..ca5b1e9 100644 --- a/xmloff/source/transform/FrameOASISTContext.cxx +++ b/xmloff/source/transform/FrameOASISTContext.cxx @@ -105,20 +105,20 @@ void XMLFrameOASISTransformerContext::StartElement( } } -XMLTransformerContext *XMLFrameOASISTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLFrameOASISTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( m_bIgnoreElement ) { // do not export the frame element and all of its children - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, - true, true ); + true, true )); } else { @@ -136,9 +136,9 @@ XMLTransformerContext *XMLFrameOASISTransformerContext::CreateChildContext( if( m_aElemQName.isEmpty() && !IsLinkedEmbeddedObject( rLocalName, rAttrList ) ) { - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, - false, false ); + false, false )); m_aElemQName = rQName; static_cast< XMLMutableAttributeList * >( m_xAttrList.get() ) ->AppendAttributeList( rAttrList ); @@ -150,9 +150,9 @@ XMLTransformerContext *XMLFrameOASISTransformerContext::CreateChildContext( } else { - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, - true, true ); + true, true )); } break; default: @@ -163,7 +163,7 @@ XMLTransformerContext *XMLFrameOASISTransformerContext::CreateChildContext( } // default is copying - if( !pContext ) + if( !pContext.is() ) pContext = XMLTransformerContext::CreateChildContext( nPrefix, rLocalName, rQName, diff --git a/xmloff/source/transform/FrameOASISTContext.hxx b/xmloff/source/transform/FrameOASISTContext.hxx index 26b641f..55f0d54 100644 --- a/xmloff/source/transform/FrameOASISTContext.hxx +++ b/xmloff/source/transform/FrameOASISTContext.hxx @@ -40,7 +40,7 @@ public: virtual ~XMLFrameOASISTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/FrameOOoTContext.cxx b/xmloff/source/transform/FrameOOoTContext.cxx index f181f05..74385d6 100644 --- a/xmloff/source/transform/FrameOOoTContext.cxx +++ b/xmloff/source/transform/FrameOOoTContext.cxx @@ -100,13 +100,13 @@ void XMLFrameOOoTransformerContext::StartElement( XMLTransformerContext::StartElement( xAttrList ); } -XMLTransformerContext *XMLFrameOOoTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLFrameOOoTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; XMLTransformerActions *pActions = GetTransformer().GetUserDefinedActions( OOO_FRAME_ELEM_ACTIONS ); @@ -133,7 +133,7 @@ XMLTransformerContext *XMLFrameOOoTransformerContext::CreateChildContext( } // default is copying - if( !pContext ) + if( !pContext.is() ) pContext = XMLTransformerContext::CreateChildContext( nPrefix, rLocalName, rQName, rAttrList ); diff --git a/xmloff/source/transform/FrameOOoTContext.hxx b/xmloff/source/transform/FrameOOoTContext.hxx index 9c8f753..c49b42d 100644 --- a/xmloff/source/transform/FrameOOoTContext.hxx +++ b/xmloff/source/transform/FrameOOoTContext.hxx @@ -32,7 +32,7 @@ public: virtual ~XMLFrameOOoTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/IgnoreTContext.cxx b/xmloff/source/transform/IgnoreTContext.cxx index 5174399..1dde4f7 100644 --- a/xmloff/source/transform/IgnoreTContext.cxx +++ b/xmloff/source/transform/IgnoreTContext.cxx @@ -53,20 +53,20 @@ XMLIgnoreTransformerContext::~XMLIgnoreTransformerContext() { } -XMLTransformerContext *XMLIgnoreTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLIgnoreTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& xAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( m_bIgnoreElements ) - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), rQName, true, - true ); + true )); else if (m_bRecursiveUse) - pContext = new XMLIgnoreTransformerContext( GetTransformer(), - rQName, m_bAllowCharactersRecursive ); + pContext.set(new XMLIgnoreTransformerContext( GetTransformer(), + rQName, m_bAllowCharactersRecursive )); else pContext = XMLTransformerContext::CreateChildContext( nPrefix, rLocalName, rQName, xAttrList ); diff --git a/xmloff/source/transform/IgnoreTContext.hxx b/xmloff/source/transform/IgnoreTContext.hxx index aae5bf2..0246927 100644 --- a/xmloff/source/transform/IgnoreTContext.hxx +++ b/xmloff/source/transform/IgnoreTContext.hxx @@ -55,7 +55,7 @@ public: // Create a children element context. By default, the import's // CreateContext method is called to create a new default context. - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/MergeElemTContext.cxx b/xmloff/source/transform/MergeElemTContext.cxx index 3e1a79d..f35fde9 100644 --- a/xmloff/source/transform/MergeElemTContext.cxx +++ b/xmloff/source/transform/MergeElemTContext.cxx @@ -41,7 +41,7 @@ public: // Create a children element context. By default, the import's // CreateContext method is called to create a new default context. - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; @@ -72,18 +72,14 @@ XMLParagraphTransformerContext::~XMLParagraphTransformerContext() { } -XMLTransformerContext *XMLParagraphTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLParagraphTransformerContext::CreateChildContext( sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/, const OUString& rQName, const Reference< XAttributeList >& ) { - XMLTransformerContext *pContext = nullptr; - - pContext = new XMLIgnoreTransformerContext( GetTransformer(), + return new XMLIgnoreTransformerContext( GetTransformer(), rQName, true ); - - return pContext; } void XMLParagraphTransformerContext::StartElement( const Reference< XAttributeList >& rAttrList ) @@ -200,13 +196,13 @@ void XMLMergeElemTransformerContext::StartElement( } } -XMLTransformerContext *XMLMergeElemTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLMergeElemTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( !m_bStartElementExported ) { @@ -225,36 +221,33 @@ XMLTransformerContext *XMLMergeElemTransformerContext::CreateChildContext( { case XML_ETACTION_MOVE_TO_ATTR_RNG2ISO_DATETIME: { - XMLPersTextContentTContext *pTC = + rtl::Reference<XMLPersTextContentTContext> pTC( new XMLPersTextContentRNGTransformTContext( GetTransformer(), rQName, (*aIter).second.GetQNamePrefixFromParam1(), - (*aIter).second.GetQNameTokenFromParam1() ); - XMLPersTextContentTContextVector::value_type aVal(pTC); - m_aChildContexts.push_back( aVal ); - pContext = pTC; + (*aIter).second.GetQNameTokenFromParam1() )); + m_aChildContexts.push_back(pTC); + pContext.set(pTC.get()); } break; case XML_ETACTION_MOVE_TO_ATTR: { - XMLPersTextContentTContext *pTC = + rtl::Reference<XMLPersTextContentTContext> pTC( new XMLPersTextContentTContext( GetTransformer(), rQName, (*aIter).second.GetQNamePrefixFromParam1(), - (*aIter).second.GetQNameTokenFromParam1() ); - XMLPersTextContentTContextVector::value_type aVal(pTC); - m_aChildContexts.push_back( aVal ); - pContext = pTC; + (*aIter).second.GetQNameTokenFromParam1() )); + m_aChildContexts.push_back(pTC); + pContext.set(pTC.get()); } break; case XML_ETACTION_EXTRACT_CHARACTERS: { if( !m_bStartElementExported ) ExportStartElement(); - XMLParagraphTransformerContext* pPTC = + pContext.set( new XMLParagraphTransformerContext( GetTransformer(), - rQName); - pContext = pPTC; + rQName)); } break; default: @@ -283,10 +276,9 @@ XMLTransformerContext *XMLMergeElemTransformerContext::CreateChildContext( { if( !m_bStartElementExported ) ExportStartElement(); - XMLParagraphTransformerContext* pPTC = + pContext.set( new XMLParagraphTransformerContext( GetTransformer(), - rQName); - pContext = pPTC; + rQName)); } break; default: @@ -298,7 +290,7 @@ XMLTransformerContext *XMLMergeElemTransformerContext::CreateChildContext( } // default is copying - if( !pContext ) + if( !pContext.is() ) { if( !m_bStartElementExported ) ExportStartElement(); diff --git a/xmloff/source/transform/MergeElemTContext.hxx b/xmloff/source/transform/MergeElemTContext.hxx index 39cc3b1..07602f6 100644 --- a/xmloff/source/transform/MergeElemTContext.hxx +++ b/xmloff/source/transform/MergeElemTContext.hxx @@ -43,7 +43,7 @@ public: virtual ~XMLMergeElemTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/MetaTContext.cxx b/xmloff/source/transform/MetaTContext.cxx index f029cdf..8dea091 100644 --- a/xmloff/source/transform/MetaTContext.cxx +++ b/xmloff/source/transform/MetaTContext.cxx @@ -67,18 +67,18 @@ XMLMetaTransformerContext::~XMLMetaTransformerContext() { } -XMLTransformerContext *XMLMetaTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLMetaTransformerContext::CreateChildContext( sal_uInt16 /*nPrefix*/, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& ) { - XMLPersTextContentTContext *pContext = - new XMLPersTextContentTContext( GetTransformer(), rQName ); + rtl::Reference<XMLPersTextContentTContext> pContext( + new XMLPersTextContentTContext( GetTransformer(), rQName )); XMLMetaContexts_Impl::value_type aVal( rLocalName, pContext ); m_aContexts.insert( aVal ); - return pContext; + return pContext.get(); } void XMLMetaTransformerContext::EndElement() diff --git a/xmloff/source/transform/MetaTContext.hxx b/xmloff/source/transform/MetaTContext.hxx index a8788fa..f6ed271 100644 --- a/xmloff/source/transform/MetaTContext.hxx +++ b/xmloff/source/transform/MetaTContext.hxx @@ -49,7 +49,7 @@ public: // Create a children element context. By default, the import's // CreateContext method is called to create a new default context. - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/NotesTContext.cxx b/xmloff/source/transform/NotesTContext.cxx index 9fbdf1f..bef8abc 100644 --- a/xmloff/source/transform/NotesTContext.cxx +++ b/xmloff/source/transform/NotesTContext.cxx @@ -153,13 +153,13 @@ void XMLNotesTransformerContext::EndElement() } } -XMLTransformerContext *XMLNotesTransformerContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLNotesTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NOTE == m_eTypeToken ) { if( XML_NAMESPACE_TEXT == nPrefix ) @@ -180,25 +180,25 @@ XMLTransformerContext *XMLNotesTransformerContext::CreateChildContext( { if( m_bPersistent ) { - pContext = new XMLPersTextContentTContext( + pContext.set(new XMLPersTextContentTContext( GetTransformer(), rQName, XML_NAMESPACE_TEXT, - eToken ); + eToken )); AddContent( pContext ); } else { - pContext = new XMLRenameElemTransformerContext( + pContext.set(new XMLRenameElemTransformerContext( GetTransformer(), rQName, XML_NAMESPACE_TEXT, - eToken ); + eToken )); } } } } - if( !pContext ) + if( !pContext.is() ) { pContext = m_bPersistent ? XMLPersElemContentTContext::CreateChildContext( diff --git a/xmloff/source/transform/NotesTContext.hxx b/xmloff/source/transform/NotesTContext.hxx index 1a49c4a..b7f9a6e 100644 --- a/xmloff/source/transform/NotesTContext.hxx +++ b/xmloff/source/transform/NotesTContext.hxx @@ -36,7 +36,7 @@ public: virtual ~XMLNotesTransformerContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/Oasis2OOo.cxx b/xmloff/source/transform/Oasis2OOo.cxx index 9ab3609..e23b5e1 100644 --- a/xmloff/source/transform/Oasis2OOo.cxx +++ b/xmloff/source/transform/Oasis2OOo.cxx @@ -1252,7 +1252,7 @@ public: virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; @@ -1276,7 +1276,7 @@ void XMLBodyOASISTransformerContext_Impl::StartElement( { } -XMLTransformerContext* XMLBodyOASISTransformerContext_Impl::CreateChildContext( sal_uInt16 nPrefix, +rtl::Reference<XMLTransformerContext> XMLBodyOASISTransformerContext_Impl::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) diff --git a/xmloff/source/transform/PersAttrListTContext.cxx b/xmloff/source/transform/PersAttrListTContext.cxx index 82985eb..3f708fd 100644 --- a/xmloff/source/transform/PersAttrListTContext.cxx +++ b/xmloff/source/transform/PersAttrListTContext.cxx @@ -110,7 +110,7 @@ XMLPersAttrListTContext::~XMLPersAttrListTContext() { } -XMLTransformerContext *XMLPersAttrListTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLPersAttrListTContext::CreateChildContext( sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/, const OUString& rQName, diff --git a/xmloff/source/transform/PersAttrListTContext.hxx b/xmloff/source/transform/PersAttrListTContext.hxx index 5f4942c..e47fb33 100644 --- a/xmloff/source/transform/PersAttrListTContext.hxx +++ b/xmloff/source/transform/PersAttrListTContext.hxx @@ -69,7 +69,7 @@ public: // Create a children element context. By default, the import's // CreateContext method is called to create a new default context. - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/PersMixedContentTContext.cxx b/xmloff/source/transform/PersMixedContentTContext.cxx index 3a4696a..43f49af 100644 --- a/xmloff/source/transform/PersMixedContentTContext.cxx +++ b/xmloff/source/transform/PersMixedContentTContext.cxx @@ -34,7 +34,7 @@ public: const OUString& rChars ); virtual ~XMLPersTextTContext_Impl(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; @@ -58,14 +58,14 @@ XMLPersTextTContext_Impl::~XMLPersTextTContext_Impl() { } -XMLTransformerContext *XMLPersTextTContext_Impl::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLPersTextTContext_Impl::CreateChildContext( sal_uInt16, const OUString&, const OUString&, const Reference< XAttributeList >& ) { OSL_ENSURE( false, "illegal call to CreateChildContext" ); - return nullptr; + return {}; } void XMLPersTextTContext_Impl::StartElement( diff --git a/xmloff/source/transform/StyleOASISTContext.cxx b/xmloff/source/transform/StyleOASISTContext.cxx index 6a4163c..0603367 100644 --- a/xmloff/source/transform/StyleOASISTContext.cxx +++ b/xmloff/source/transform/StyleOASISTContext.cxx @@ -759,13 +759,13 @@ XMLStyleOASISTContext::~XMLStyleOASISTContext() { } -XMLTransformerContext *XMLStyleOASISTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLStyleOASISTContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_STYLE == nPrefix || XML_NAMESPACE_LO_EXT == nPrefix ) { @@ -779,10 +779,10 @@ XMLTransformerContext *XMLStyleOASISTContext::CreateChildContext( GetTransformer(), rQName, ePropType, m_aStyleFamily, m_bControlStyle ); else m_xPropContext->SetQNameAndPropType( rQName, ePropType ); - pContext = m_xPropContext.get(); + pContext.set(m_xPropContext.get()); } } - if( !pContext ) + if( !pContext.is() ) { // if a properties context exist close it if( m_xPropContext.is() && !m_bPersistent ) diff --git a/xmloff/source/transform/StyleOASISTContext.hxx b/xmloff/source/transform/StyleOASISTContext.hxx index ae46ba6..8b1149c 100644 --- a/xmloff/source/transform/StyleOASISTContext.hxx +++ b/xmloff/source/transform/StyleOASISTContext.hxx @@ -46,7 +46,7 @@ public: virtual ~XMLStyleOASISTContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/StyleOOoTContext.cxx b/xmloff/source/transform/StyleOOoTContext.cxx index 24d0234..4f30727 100644 --- a/xmloff/source/transform/StyleOOoTContext.cxx +++ b/xmloff/source/transform/StyleOOoTContext.cxx @@ -237,7 +237,7 @@ public: virtual ~XMLPropertiesOOoTContext_Impl(); - XMLTransformerContext *CreateChildContext( + rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, @@ -378,7 +378,7 @@ XMLPropertiesOOoTContext_Impl::~XMLPropertiesOOoTContext_Impl() { } -XMLTransformerContext *XMLPropertiesOOoTContext_Impl::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLPropertiesOOoTContext_Impl::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, @@ -1067,13 +1067,13 @@ XMLStyleOOoTContext::~XMLStyleOOoTContext() { } -XMLTransformerContext *XMLStyleOOoTContext::CreateChildContext( +rtl::Reference<XMLTransformerContext> XMLStyleOOoTContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& rAttrList ) { - XMLTransformerContext *pContext = nullptr; + rtl::Reference<XMLTransformerContext> pContext; if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLocalName, XML_PROPERTIES ) ) @@ -1093,29 +1093,29 @@ XMLTransformerContext *XMLStyleOOoTContext::CreateChildContext( aAttrActionMaps[aPropTypes[m_eFamily][0]]; if( nActionMap < MAX_OOO_PROP_ACTIONS ) { - pContext = new XMLPropertiesOOoTContext_Impl( + pContext.set(new XMLPropertiesOOoTContext_Impl( GetTransformer(), rQName, - aPropTypes[m_eFamily], m_bPersistent ); + aPropTypes[m_eFamily], m_bPersistent )); } else { if( m_bPersistent ) - pContext = new XMLPersElemContentTContext( + pContext.set(new XMLPersElemContentTContext( GetTransformer(), rQName, XML_NAMESPACE_STYLE, - aPropTokens[aPropTypes[m_eFamily][0]] ); + aPropTokens[aPropTypes[m_eFamily][0]] )); else - pContext = new XMLRenameElemTransformerContext( + pContext.set(new XMLRenameElemTransformerContext( GetTransformer(), rQName, XML_NAMESPACE_STYLE, - aPropTokens[aPropTypes[m_eFamily][0]] ); + aPropTokens[aPropTypes[m_eFamily][0]] )); } } else { - pContext = new XMLPropertiesOOoTContext_Impl( + pContext.set(new XMLPropertiesOOoTContext_Impl( GetTransformer(), rQName, - aPropTypes[m_eFamily], m_bPersistent); + aPropTypes[m_eFamily], m_bPersistent)); } if( m_bPersistent ) diff --git a/xmloff/source/transform/StyleOOoTContext.hxx b/xmloff/source/transform/StyleOOoTContext.hxx index 5a716a5..12cb419 100644 --- a/xmloff/source/transform/StyleOOoTContext.hxx +++ b/xmloff/source/transform/StyleOOoTContext.hxx @@ -47,7 +47,7 @@ public: virtual ~XMLStyleOOoTContext(); - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/transform/TransformerContext.cxx b/xmloff/source/transform/TransformerContext.cxx index 61e3df9..d245314 100644 --- a/xmloff/source/transform/TransformerContext.cxx +++ b/xmloff/source/transform/TransformerContext.cxx @@ -58,7 +58,7 @@ XMLTransformerContext::~XMLTransformerContext() { } -XMLTransformerContext *XMLTransformerContext::CreateChildContext( sal_uInt16 nPrefix, +rtl::Reference<XMLTransformerContext> XMLTransformerContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const Reference< XAttributeList >& ) diff --git a/xmloff/source/transform/TransformerContext.hxx b/xmloff/source/transform/TransformerContext.hxx index 449c3e1..a42e982 100644 --- a/xmloff/source/transform/TransformerContext.hxx +++ b/xmloff/source/transform/TransformerContext.hxx @@ -22,6 +22,7 @@ #include <com/sun/star/xml/sax/XAttributeList.hpp> #include <salhelper/simplereferenceobject.hxx> +#include <rtl/ref.hxx> #include <rtl/ustring.hxx> #include <xmloff/xmltoken.hxx> @@ -69,7 +70,7 @@ public: // Create a children element context. By default, the import's // CreateContext method is called to create a new default context. - virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix, + virtual rtl::Reference<XMLTransformerContext> CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rQName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits