include/xmloff/xmlictxt.hxx | 8 - include/xmloff/xmlimp.hxx | 11 +- xmloff/source/core/xmlimp.cxx | 100 +++++++++---------- xmlsecurity/source/helper/ooxmlsecparser.cxx | 117 +++++++++++----------- xmlsecurity/source/helper/ooxmlsecparser.hxx | 3 xmlsecurity/source/helper/xsecparser.cxx | 141 +++++++++++++-------------- xmlsecurity/source/helper/xsecparser.hxx | 3 7 files changed, 192 insertions(+), 191 deletions(-)
New commits: commit bebb1a3f2dc3e131f95a078f8a9c40d0491af7cd Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Jul 21 09:34:10 2021 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Jul 22 10:16:20 2021 +0200 pass SvXMLNamespaceMap around by value in SvXMLImport. Remove an assert in XSecParser because std::move on std::optional does not make the optional empty, unlike it's effect on std::unique_ptr. Change-Id: Ie94d01423bf694a37e4bd7f2c0235c5f79a44efe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119302 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/xmloff/xmlictxt.hxx b/include/xmloff/xmlictxt.hxx index 3a83ff4527ff..885be2ead5ab 100644 --- a/include/xmloff/xmlictxt.hxx +++ b/include/xmloff/xmlictxt.hxx @@ -27,7 +27,7 @@ #include <com/sun/star/lang/XTypeProvider.hpp> #include <rtl/ustring.hxx> #include <xmloff/namespacemap.hxx> -#include <memory> +#include <optional> namespace com::sun::star::xml::sax { class XAttributeList; } @@ -49,10 +49,10 @@ class XMLOFF_DLLPUBLIC SvXMLImportContext : public css::xml::sax::XFastContextHa SvXMLImport& mrImport; oslInterlockedCount m_nRefCount; - std::unique_ptr<SvXMLNamespaceMap> m_pRewindMap; + std::optional<SvXMLNamespaceMap> m_xRewindMap; - SAL_DLLPRIVATE std::unique_ptr<SvXMLNamespaceMap> TakeRewindMap() { return std::move(m_pRewindMap); } - SAL_DLLPRIVATE void PutRewindMap(std::unique_ptr<SvXMLNamespaceMap> p) { m_pRewindMap = std::move(p); } + SAL_DLLPRIVATE std::optional<SvXMLNamespaceMap> TakeRewindMap() { return std::move(m_xRewindMap); } + SAL_DLLPRIVATE void PutRewindMap(std::optional<SvXMLNamespaceMap> p) { m_xRewindMap = std::move(p); } protected: diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx index dc01b88ed9ef..12020802c329 100644 --- a/include/xmloff/xmlimp.hxx +++ b/include/xmloff/xmlimp.hxx @@ -48,6 +48,7 @@ #include <com/sun/star/xml/sax/XFastDocumentHandler.hpp> #include <o3tl/typed_flags_set.hxx> #include <memory> +#include <optional> namespace com::sun::star::beans { class XPropertySet; } namespace com::sun::star::beans { struct NamedValue; } @@ -214,7 +215,7 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper< std::unique_ptr<SvXMLImport_Impl> mpImpl; // dummy - std::unique_ptr<SvXMLNamespaceMap> mpNamespaceMap; + std::optional<SvXMLNamespaceMap> mxNamespaceMap; std::unique_ptr<SvXMLUnitConverter> mpUnitConv; std::stack<SvXMLImportContextRef, std::vector<SvXMLImportContextRef>> maContexts; @@ -240,8 +241,8 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper< static void initializeNamespaceMaps(); void registerNamespaces(); public: - static std::unique_ptr<SvXMLNamespaceMap> processNSAttributes( - std::unique_ptr<SvXMLNamespaceMap> & rpNamespaceMap, + static std::optional<SvXMLNamespaceMap> processNSAttributes( + std::optional<SvXMLNamespaceMap> & rpNamespaceMap, SvXMLImport *const pImport, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList); private: @@ -394,8 +395,8 @@ public: static OUString getNamespacePrefixFromURI( const OUString& rURI ); static sal_Int32 getTokenFromName(const OUString& sName); - SvXMLNamespaceMap& GetNamespaceMap() { return *mpNamespaceMap; } - const SvXMLNamespaceMap& GetNamespaceMap() const { return *mpNamespaceMap; } + SvXMLNamespaceMap& GetNamespaceMap() { return *mxNamespaceMap; } + const SvXMLNamespaceMap& GetNamespaceMap() const { return *mxNamespaceMap; } const SvXMLUnitConverter& GetMM100UnitConverter() const { return *mpUnitConv; } SvXMLUnitConverter& GetMM100UnitConverter() { return *mpUnitConv; } const css::uno::Reference< css::xml::sax::XLocator > & GetLocator() const { return mxLocator; } diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx index d3973c87e16c..48a83f7d1b9f 100644 --- a/xmloff/source/core/xmlimp.cxx +++ b/xmloff/source/core/xmlimp.cxx @@ -354,42 +354,42 @@ void SvXMLImport::InitCtor_() if( mnImportFlags != SvXMLImportFlags::NONE ) { // implicit "xml" namespace prefix - mpNamespaceMap->Add( GetXMLToken(XML_XML), GetXMLToken(XML_N_XML), XML_NAMESPACE_XML ); - mpNamespaceMap->Add( "_office", GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE ); - mpNamespaceMap->Add( "_office_ooo", GetXMLToken(XML_N_OFFICE_EXT), XML_NAMESPACE_OFFICE_EXT ); - mpNamespaceMap->Add( "_ooo", GetXMLToken(XML_N_OOO), XML_NAMESPACE_OOO ); - mpNamespaceMap->Add( "_style", GetXMLToken(XML_N_STYLE), XML_NAMESPACE_STYLE ); - mpNamespaceMap->Add( "_text", GetXMLToken(XML_N_TEXT), XML_NAMESPACE_TEXT ); - mpNamespaceMap->Add( "_table", GetXMLToken(XML_N_TABLE), XML_NAMESPACE_TABLE ); - mpNamespaceMap->Add( "_table_ooo", GetXMLToken(XML_N_TABLE_EXT), XML_NAMESPACE_TABLE_EXT ); - mpNamespaceMap->Add( "_draw", GetXMLToken(XML_N_DRAW), XML_NAMESPACE_DRAW ); - mpNamespaceMap->Add( "_draw_ooo", GetXMLToken(XML_N_DRAW_EXT), XML_NAMESPACE_DRAW_EXT ); - mpNamespaceMap->Add( "_dr3d", GetXMLToken(XML_N_DR3D), XML_NAMESPACE_DR3D ); - mpNamespaceMap->Add( "_fo", GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO ); - mpNamespaceMap->Add( "_xlink", GetXMLToken(XML_N_XLINK), XML_NAMESPACE_XLINK ); - mpNamespaceMap->Add( "_dc", GetXMLToken(XML_N_DC), XML_NAMESPACE_DC ); - mpNamespaceMap->Add( "_dom", GetXMLToken(XML_N_DOM), XML_NAMESPACE_DOM ); - mpNamespaceMap->Add( "_meta", GetXMLToken(XML_N_META), XML_NAMESPACE_META ); - mpNamespaceMap->Add( "_number", GetXMLToken(XML_N_NUMBER), XML_NAMESPACE_NUMBER ); - mpNamespaceMap->Add( "_svg", GetXMLToken(XML_N_SVG_COMPAT), XML_NAMESPACE_SVG ); - mpNamespaceMap->Add( "_chart", GetXMLToken(XML_N_CHART), XML_NAMESPACE_CHART ); - mpNamespaceMap->Add( "_math", GetXMLToken(XML_N_MATH), XML_NAMESPACE_MATH ); - mpNamespaceMap->Add( "_form", GetXMLToken(XML_N_FORM), XML_NAMESPACE_FORM ); - mpNamespaceMap->Add( "_script", GetXMLToken(XML_N_SCRIPT), XML_NAMESPACE_SCRIPT ); - mpNamespaceMap->Add( "_config", GetXMLToken(XML_N_CONFIG), XML_NAMESPACE_CONFIG ); - mpNamespaceMap->Add( "_xforms", GetXMLToken(XML_N_XFORMS_1_0), XML_NAMESPACE_XFORMS ); - mpNamespaceMap->Add( "_formx", GetXMLToken( XML_N_FORMX ), XML_NAMESPACE_FORMX ); - mpNamespaceMap->Add( "_xsd", GetXMLToken(XML_N_XSD), XML_NAMESPACE_XSD ); - mpNamespaceMap->Add( "_xsi", GetXMLToken(XML_N_XSI), XML_NAMESPACE_XFORMS ); - mpNamespaceMap->Add( "_ooow", GetXMLToken(XML_N_OOOW), XML_NAMESPACE_OOOW ); - mpNamespaceMap->Add( "_oooc", GetXMLToken(XML_N_OOOC), XML_NAMESPACE_OOOC ); - mpNamespaceMap->Add( "_field", GetXMLToken(XML_N_FIELD), XML_NAMESPACE_FIELD ); - mpNamespaceMap->Add( "_of", GetXMLToken(XML_N_OF), XML_NAMESPACE_OF ); - mpNamespaceMap->Add( "_xhtml", GetXMLToken(XML_N_XHTML), XML_NAMESPACE_XHTML ); - mpNamespaceMap->Add( "_css3text", GetXMLToken(XML_N_CSS3TEXT), XML_NAMESPACE_CSS3TEXT ); - - mpNamespaceMap->Add( "_calc_libo", GetXMLToken(XML_N_CALC_EXT), XML_NAMESPACE_CALC_EXT); - mpNamespaceMap->Add( "_office_libo", + mxNamespaceMap->Add( GetXMLToken(XML_XML), GetXMLToken(XML_N_XML), XML_NAMESPACE_XML ); + mxNamespaceMap->Add( "_office", GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE ); + mxNamespaceMap->Add( "_office_ooo", GetXMLToken(XML_N_OFFICE_EXT), XML_NAMESPACE_OFFICE_EXT ); + mxNamespaceMap->Add( "_ooo", GetXMLToken(XML_N_OOO), XML_NAMESPACE_OOO ); + mxNamespaceMap->Add( "_style", GetXMLToken(XML_N_STYLE), XML_NAMESPACE_STYLE ); + mxNamespaceMap->Add( "_text", GetXMLToken(XML_N_TEXT), XML_NAMESPACE_TEXT ); + mxNamespaceMap->Add( "_table", GetXMLToken(XML_N_TABLE), XML_NAMESPACE_TABLE ); + mxNamespaceMap->Add( "_table_ooo", GetXMLToken(XML_N_TABLE_EXT), XML_NAMESPACE_TABLE_EXT ); + mxNamespaceMap->Add( "_draw", GetXMLToken(XML_N_DRAW), XML_NAMESPACE_DRAW ); + mxNamespaceMap->Add( "_draw_ooo", GetXMLToken(XML_N_DRAW_EXT), XML_NAMESPACE_DRAW_EXT ); + mxNamespaceMap->Add( "_dr3d", GetXMLToken(XML_N_DR3D), XML_NAMESPACE_DR3D ); + mxNamespaceMap->Add( "_fo", GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO ); + mxNamespaceMap->Add( "_xlink", GetXMLToken(XML_N_XLINK), XML_NAMESPACE_XLINK ); + mxNamespaceMap->Add( "_dc", GetXMLToken(XML_N_DC), XML_NAMESPACE_DC ); + mxNamespaceMap->Add( "_dom", GetXMLToken(XML_N_DOM), XML_NAMESPACE_DOM ); + mxNamespaceMap->Add( "_meta", GetXMLToken(XML_N_META), XML_NAMESPACE_META ); + mxNamespaceMap->Add( "_number", GetXMLToken(XML_N_NUMBER), XML_NAMESPACE_NUMBER ); + mxNamespaceMap->Add( "_svg", GetXMLToken(XML_N_SVG_COMPAT), XML_NAMESPACE_SVG ); + mxNamespaceMap->Add( "_chart", GetXMLToken(XML_N_CHART), XML_NAMESPACE_CHART ); + mxNamespaceMap->Add( "_math", GetXMLToken(XML_N_MATH), XML_NAMESPACE_MATH ); + mxNamespaceMap->Add( "_form", GetXMLToken(XML_N_FORM), XML_NAMESPACE_FORM ); + mxNamespaceMap->Add( "_script", GetXMLToken(XML_N_SCRIPT), XML_NAMESPACE_SCRIPT ); + mxNamespaceMap->Add( "_config", GetXMLToken(XML_N_CONFIG), XML_NAMESPACE_CONFIG ); + mxNamespaceMap->Add( "_xforms", GetXMLToken(XML_N_XFORMS_1_0), XML_NAMESPACE_XFORMS ); + mxNamespaceMap->Add( "_formx", GetXMLToken( XML_N_FORMX ), XML_NAMESPACE_FORMX ); + mxNamespaceMap->Add( "_xsd", GetXMLToken(XML_N_XSD), XML_NAMESPACE_XSD ); + mxNamespaceMap->Add( "_xsi", GetXMLToken(XML_N_XSI), XML_NAMESPACE_XFORMS ); + mxNamespaceMap->Add( "_ooow", GetXMLToken(XML_N_OOOW), XML_NAMESPACE_OOOW ); + mxNamespaceMap->Add( "_oooc", GetXMLToken(XML_N_OOOC), XML_NAMESPACE_OOOC ); + mxNamespaceMap->Add( "_field", GetXMLToken(XML_N_FIELD), XML_NAMESPACE_FIELD ); + mxNamespaceMap->Add( "_of", GetXMLToken(XML_N_OF), XML_NAMESPACE_OF ); + mxNamespaceMap->Add( "_xhtml", GetXMLToken(XML_N_XHTML), XML_NAMESPACE_XHTML ); + mxNamespaceMap->Add( "_css3text", GetXMLToken(XML_N_CSS3TEXT), XML_NAMESPACE_CSS3TEXT ); + + mxNamespaceMap->Add( "_calc_libo", GetXMLToken(XML_N_CALC_EXT), XML_NAMESPACE_CALC_EXT); + mxNamespaceMap->Add( "_office_libo", GetXMLToken(XML_N_LO_EXT), XML_NAMESPACE_LO_EXT); } @@ -409,7 +409,7 @@ SvXMLImport::SvXMLImport( SvXMLImportFlags nImportFlags, const css::uno::Sequence< OUString > & sSupportedServiceNames ) : mpImpl( new SvXMLImport_Impl(xContext, implementationName, sSupportedServiceNames) ), - mpNamespaceMap( new SvXMLNamespaceMap ), + mxNamespaceMap( SvXMLNamespaceMap() ), mpUnitConv( new SvXMLUnitConverter( xContext, util::MeasureUnit::MM_100TH, util::MeasureUnit::MM_100TH, @@ -677,12 +677,12 @@ void SAL_CALL SvXMLImport::endDocument() } } -std::unique_ptr<SvXMLNamespaceMap> SvXMLImport::processNSAttributes( - std::unique_ptr<SvXMLNamespaceMap> & rpNamespaceMap, +std::optional<SvXMLNamespaceMap> SvXMLImport::processNSAttributes( + std::optional<SvXMLNamespaceMap> & rpNamespaceMap, SvXMLImport *const pImport, // TODO??? const uno::Reference< xml::sax::XAttributeList >& xAttrList) { - std::unique_ptr<SvXMLNamespaceMap> pRewindMap; + std::optional<SvXMLNamespaceMap> pRewindMap; sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; for( sal_Int16 i=0; i < nAttrCount; i++ ) { @@ -708,7 +708,7 @@ std::unique_ptr<SvXMLNamespaceMap> SvXMLImport::processNSAttributes( if( !pRewindMap ) { pRewindMap = std::move(rpNamespaceMap); - rpNamespaceMap.reset(new SvXMLNamespaceMap(*pRewindMap)); + rpNamespaceMap.emplace(*pRewindMap); } const OUString& rAttrValue = xAttrList->getValueByIndex( i ); @@ -778,7 +778,7 @@ void SAL_CALL SvXMLImport::startFastElement (sal_Int32 Element, maNamespaceAttrList->Clear(); maNamespaceHandler->addNSDeclAttributes( maNamespaceAttrList ); - std::unique_ptr<SvXMLNamespaceMap> pRewindMap = processNSAttributes(mpNamespaceMap, this, maNamespaceAttrList); + std::optional<SvXMLNamespaceMap> pRewindMap = processNSAttributes(mxNamespaceMap, this, maNamespaceAttrList); SvXMLImportContextRef xContext; const bool bRootContext = maContexts.empty(); @@ -862,12 +862,12 @@ void SAL_CALL SvXMLImport::endFastElement (sal_Int32 Element) } SvXMLImportContextRef xContext = std::move(maContexts.top()); // Get a namespace map to rewind. - std::unique_ptr<SvXMLNamespaceMap> pRewindMap = xContext->TakeRewindMap(); + std::optional<SvXMLNamespaceMap> pRewindMap = xContext->TakeRewindMap(); maContexts.pop(); xContext->endFastElement( Element ); // Rewind a namespace map. if (pRewindMap) - mpNamespaceMap = std::move(pRewindMap); + mxNamespaceMap = std::move(pRewindMap); } void SAL_CALL SvXMLImport::endUnknownElement (const OUString & rPrefix, const OUString & rLocalName) @@ -2158,9 +2158,9 @@ void SAL_CALL SvXMLLegacyToFastDocHandler::startElement( const OUString& rName, sal_uInt16 nDefaultNamespace = XML_NAMESPACE_UNKNOWN; if (!maDefaultNamespaces.empty()) nDefaultNamespace = maDefaultNamespaces.top(); - SvXMLImport::processNSAttributes(mrImport->mpNamespaceMap, mrImport.get(), xAttrList); + SvXMLImport::processNSAttributes(mrImport->mxNamespaceMap, mrImport.get(), xAttrList); OUString aLocalName; - sal_uInt16 nPrefix = mrImport->mpNamespaceMap->GetKeyByAttrName( rName, &aLocalName ); + sal_uInt16 nPrefix = mrImport->mxNamespaceMap->GetKeyByAttrName( rName, &aLocalName ); sal_Int32 mnElement = NAMESPACE_TOKEN( nPrefix ) | SvXMLImport::getTokenFromName( aLocalName ); mxFastAttributes->clear(); @@ -2171,7 +2171,7 @@ void SAL_CALL SvXMLLegacyToFastDocHandler::startElement( const OUString& rName, const OUString& rAttrValue = xAttrList->getValueByIndex( i ); if (rAttrName == "xmlns") { - sal_uInt16 nNamespaceKey = mrImport->mpNamespaceMap->GetKeyByName(rAttrValue); + sal_uInt16 nNamespaceKey = mrImport->mxNamespaceMap->GetKeyByName(rAttrValue); if (nNamespaceKey != XML_NAMESPACE_UNKNOWN) { nDefaultNamespace = nNamespaceKey; @@ -2184,7 +2184,7 @@ void SAL_CALL SvXMLLegacyToFastDocHandler::startElement( const OUString& rName, auto const nToken = SvXMLImport::getTokenFromName(rAttrName); if (nToken == xmloff::XML_TOKEN_INVALID) { - mxFastAttributes->addUnknown(mrImport->mpNamespaceMap->GetNameByKey(nDefaultNamespace), + mxFastAttributes->addUnknown(mrImport->mxNamespaceMap->GetNameByKey(nDefaultNamespace), OUStringToOString(rAttrName, RTL_TEXTENCODING_UTF8), OUStringToOString(rAttrValue, RTL_TEXTENCODING_UTF8)); } @@ -2199,7 +2199,7 @@ void SAL_CALL SvXMLLegacyToFastDocHandler::startElement( const OUString& rName, OUString aLocalAttrName; OUString aNamespace; // don't add unknown namespaces to the map - sal_uInt16 const nAttrPrefix = mrImport->mpNamespaceMap->GetKeyByQName( + sal_uInt16 const nAttrPrefix = mrImport->mxNamespaceMap->GetKeyByQName( rAttrName, nullptr, &aLocalAttrName, &aNamespace, SvXMLNamespaceMap::QNameMode::AttrValue); if( XML_NAMESPACE_XMLNS == nAttrPrefix ) continue; // ignore @@ -2223,7 +2223,7 @@ void SAL_CALL SvXMLLegacyToFastDocHandler::startElement( const OUString& rName, void SAL_CALL SvXMLLegacyToFastDocHandler::endElement( const OUString& rName ) { OUString aLocalName; - sal_uInt16 nPrefix = mrImport->mpNamespaceMap->GetKeyByAttrName( rName, &aLocalName ); + sal_uInt16 nPrefix = mrImport->mxNamespaceMap->GetKeyByAttrName( rName, &aLocalName ); sal_Int32 mnElement = NAMESPACE_TOKEN( nPrefix ) | SvXMLImport::getTokenFromName(aLocalName); mrImport->endFastElement( mnElement ); maDefaultNamespaces.pop(); diff --git a/xmlsecurity/source/helper/ooxmlsecparser.cxx b/xmlsecurity/source/helper/ooxmlsecparser.cxx index c88c4efbbe69..a25c7ecffa01 100644 --- a/xmlsecurity/source/helper/ooxmlsecparser.cxx +++ b/xmlsecurity/source/helper/ooxmlsecparser.cxx @@ -28,11 +28,11 @@ class OOXMLSecParser::Context friend class OOXMLSecParser; OOXMLSecParser & m_rParser; private: - std::unique_ptr<SvXMLNamespaceMap> m_pOldNamespaceMap; + std::optional<SvXMLNamespaceMap> m_pOldNamespaceMap; public: Context(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : m_rParser(rParser) , m_pOldNamespaceMap(std::move(pOldNamespaceMap)) { @@ -50,7 +50,7 @@ class OOXMLSecParser::Context } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const /*nNamespace*/, OUString const& /*rName*/); virtual void Characters(OUString const& /*rChars*/) @@ -67,7 +67,7 @@ class OOXMLSecParser::UnknownContext { public: UnknownContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -80,7 +80,7 @@ class OOXMLSecParser::UnknownContext }; auto OOXMLSecParser::Context::CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const /*nNamespace*/, OUString const& /*rName*/) -> std::unique_ptr<Context> { @@ -106,7 +106,7 @@ class OOXMLSecParser::ReferencedContextImpl public: ReferencedContextImpl(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_isReferenced(isReferenced) @@ -132,7 +132,7 @@ class OOXMLSecParser::DsX509CertificateContext public: DsX509CertificateContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -153,7 +153,7 @@ class OOXMLSecParser::DsX509SerialNumberContext public: DsX509SerialNumberContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -174,7 +174,7 @@ class OOXMLSecParser::DsX509IssuerNameContext public: DsX509IssuerNameContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -196,7 +196,7 @@ class OOXMLSecParser::DsX509IssuerSerialContext public: DsX509IssuerSerialContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rIssuerName, OUString & rSerialNumber) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rX509IssuerName(rIssuerName) @@ -205,7 +205,7 @@ class OOXMLSecParser::DsX509IssuerSerialContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509IssuerName") @@ -233,7 +233,7 @@ class OOXMLSecParser::DsX509DataContext public: DsX509DataContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -244,7 +244,7 @@ class OOXMLSecParser::DsX509DataContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509IssuerSerial") @@ -267,7 +267,7 @@ class OOXMLSecParser::DsKeyInfoContext { public: DsKeyInfoContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -279,7 +279,7 @@ class OOXMLSecParser::DsKeyInfoContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509Data") @@ -303,7 +303,7 @@ class OOXMLSecParser::DsSignatureValueContext public: DsSignatureValueContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -333,7 +333,7 @@ class OOXMLSecParser::DsDigestValueContext public: DsDigestValueContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -360,7 +360,7 @@ class OOXMLSecParser::DsDigestMethodContext public: DsDigestMethodContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_Int32 & rReferenceDigestID) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rReferenceDigestID(rReferenceDigestID) @@ -399,7 +399,7 @@ class OOXMLSecParser::DsTransformContext public: DsTransformContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool & rIsC14N) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rIsC14N(rIsC14N) @@ -426,7 +426,7 @@ class OOXMLSecParser::DsTransformsContext public: DsTransformsContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool & rIsC14N) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rIsC14N(rIsC14N) @@ -434,7 +434,7 @@ class OOXMLSecParser::DsTransformsContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Transform") @@ -459,7 +459,7 @@ class OOXMLSecParser::DsReferenceContext public: DsReferenceContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -503,7 +503,7 @@ class OOXMLSecParser::DsReferenceContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Transforms") @@ -527,7 +527,7 @@ class OOXMLSecParser::DsSignatureMethodContext { public: DsSignatureMethodContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -549,7 +549,7 @@ class OOXMLSecParser::DsSignedInfoContext { public: DsSignedInfoContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -566,7 +566,7 @@ class OOXMLSecParser::DsSignedInfoContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureMethod") @@ -591,7 +591,7 @@ class OOXMLSecParser::XadesCertDigestContext public: XadesCertDigestContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rDigestValue, sal_Int32 & rReferenceDigestID) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rDigestValue(rDigestValue) @@ -600,7 +600,7 @@ class OOXMLSecParser::XadesCertDigestContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "DigestMethod") @@ -626,7 +626,7 @@ class OOXMLSecParser::XadesCertContext public: XadesCertContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -645,7 +645,7 @@ class OOXMLSecParser::XadesCertContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "CertDigest") @@ -665,14 +665,14 @@ class OOXMLSecParser::XadesSigningCertificateContext { public: XadesSigningCertificateContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "Cert") @@ -691,7 +691,7 @@ class OOXMLSecParser::XadesSigningTimeContext public: XadesSigningTimeContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -720,7 +720,7 @@ class OOXMLSecParser::XadesSignedSignaturePropertiesContext { public: XadesSignedSignaturePropertiesContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -733,7 +733,7 @@ class OOXMLSecParser::XadesSignedSignaturePropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SigningTime") @@ -754,7 +754,7 @@ class OOXMLSecParser::XadesSignedPropertiesContext { public: XadesSignedPropertiesContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -767,7 +767,7 @@ class OOXMLSecParser::XadesSignedPropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SignedSignatureProperties") @@ -784,7 +784,7 @@ class OOXMLSecParser::XadesQualifyingPropertiesContext { public: XadesQualifyingPropertiesContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -797,7 +797,7 @@ class OOXMLSecParser::XadesQualifyingPropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SignedProperties") @@ -817,7 +817,7 @@ class OOXMLSecParser::MsodigsigSetupIDContext public: MsodigsigSetupIDContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -838,7 +838,7 @@ class OOXMLSecParser::MsodigsigSignatureCommentsContext public: MsodigsigSignatureCommentsContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -860,7 +860,7 @@ class OOXMLSecParser::MsodigsigSignatureInfoV1Context public: MsodigsigSignatureInfoV1Context(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -873,7 +873,7 @@ class OOXMLSecParser::MsodigsigSignatureInfoV1Context } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_MSODIGSIG && rName == "SetupID") @@ -916,7 +916,7 @@ class OOXMLSecParser::MdssiValueContext public: MdssiValueContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -937,7 +937,7 @@ class OOXMLSecParser::MdssiSignatureTimeContext public: MdssiSignatureTimeContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -945,7 +945,7 @@ class OOXMLSecParser::MdssiSignatureTimeContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_MDSSI && rName == "Value") @@ -968,7 +968,7 @@ class OOXMLSecParser::DsSignaturePropertyContext public: DsSignaturePropertyContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1003,7 +1003,7 @@ class OOXMLSecParser::DsSignaturePropertyContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_MDSSI && rName == "SignatureTime") @@ -1024,7 +1024,7 @@ class OOXMLSecParser::DsSignaturePropertiesContext { public: DsSignaturePropertiesContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1037,7 +1037,7 @@ class OOXMLSecParser::DsSignaturePropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureProperty") @@ -1053,7 +1053,7 @@ class OOXMLSecParser::DsManifestContext { public: DsManifestContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1074,7 +1074,7 @@ class OOXMLSecParser::DsManifestContext #endif virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Reference") @@ -1095,7 +1095,7 @@ class OOXMLSecParser::DsObjectContext public: DsObjectContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) // init with "false" here - the Signature element can't be referenced by its child : OOXMLSecParser::ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), false) { @@ -1150,7 +1150,7 @@ class OOXMLSecParser::DsObjectContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureProperties") @@ -1174,7 +1174,7 @@ class OOXMLSecParser::DsSignatureContext { public: DsSignatureContext(OOXMLSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : OOXMLSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -1192,7 +1192,7 @@ class OOXMLSecParser::DsSignatureContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignedInfo") @@ -1217,7 +1217,7 @@ class OOXMLSecParser::DsSignatureContext OOXMLSecParser::OOXMLSecParser(XMLSignatureHelper& rXMLSignatureHelper, XSecController* pXSecController) - : m_pNamespaceMap(new SvXMLNamespaceMap) + : m_pNamespaceMap(SvXMLNamespaceMap()) , m_pXSecController(pXSecController) ,m_rXMLSignatureHelper(rXMLSignatureHelper) { @@ -1262,7 +1262,7 @@ void SAL_CALL OOXMLSecParser::endDocument() void SAL_CALL OOXMLSecParser::startElement(const OUString& rName, const uno::Reference<xml::sax::XAttributeList>& xAttribs) { assert(m_pNamespaceMap); - std::unique_ptr<SvXMLNamespaceMap> pRewindMap( + std::optional<SvXMLNamespaceMap> pRewindMap( SvXMLImport::processNSAttributes(m_pNamespaceMap, nullptr, xAttribs)); OUString localName; @@ -1291,7 +1291,6 @@ void SAL_CALL OOXMLSecParser::startElement(const OUString& rName, const uno::Ref } m_ContextStack.push(std::move(pContext)); - assert(!pRewindMap); m_ContextStack.top()->StartElement(xAttribs); diff --git a/xmlsecurity/source/helper/ooxmlsecparser.hxx b/xmlsecurity/source/helper/ooxmlsecparser.hxx index 4f11302ff765..9d0c7efe470d 100644 --- a/xmlsecurity/source/helper/ooxmlsecparser.hxx +++ b/xmlsecurity/source/helper/ooxmlsecparser.hxx @@ -16,6 +16,7 @@ #include <xmloff/namespacemap.hxx> +#include <optional> #include <stack> class XSecController; @@ -71,7 +72,7 @@ private: class DsigSignaturesContext; std::stack<std::unique_ptr<Context>> m_ContextStack; - std::unique_ptr<SvXMLNamespaceMap> m_pNamespaceMap; + std::optional<SvXMLNamespaceMap> m_pNamespaceMap; XSecController* m_pXSecController; css::uno::Reference<css::xml::sax::XDocumentHandler> m_xNextHandler; diff --git a/xmlsecurity/source/helper/xsecparser.cxx b/xmlsecurity/source/helper/xsecparser.cxx index d191c540ce8f..f12e7031e349 100644 --- a/xmlsecurity/source/helper/xsecparser.cxx +++ b/xmlsecurity/source/helper/xsecparser.cxx @@ -36,11 +36,11 @@ class XSecParser::Context friend class XSecParser; XSecParser & m_rParser; private: - std::unique_ptr<SvXMLNamespaceMap> m_pOldNamespaceMap; + std::optional<SvXMLNamespaceMap> m_pOldNamespaceMap; public: Context(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : m_rParser(rParser) , m_pOldNamespaceMap(std::move(pOldNamespaceMap)) { @@ -58,7 +58,7 @@ class XSecParser::Context } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const /*nNamespace*/, OUString const& /*rName*/); virtual void Characters(OUString const& /*rChars*/) @@ -75,7 +75,7 @@ class XSecParser::UnknownContext { public: UnknownContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -88,7 +88,7 @@ class XSecParser::UnknownContext }; auto XSecParser::Context::CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const /*nNamespace*/, OUString const& /*rName*/) -> std::unique_ptr<Context> { @@ -114,7 +114,7 @@ class XSecParser::ReferencedContextImpl public: ReferencedContextImpl(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_isReferenced(isReferenced) @@ -140,7 +140,7 @@ class XSecParser::LoPGPOwnerContext public: LoPGPOwnerContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -164,7 +164,7 @@ class XSecParser::DsPGPKeyPacketContext public: DsPGPKeyPacketContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -188,7 +188,7 @@ class XSecParser::DsPGPKeyIDContext public: DsPGPKeyIDContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -209,7 +209,7 @@ class XSecParser::DsPGPDataContext { public: DsPGPDataContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -221,7 +221,7 @@ class XSecParser::DsPGPDataContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "PGPKeyID") @@ -248,7 +248,7 @@ class XSecParser::DsX509CertificateContext public: DsX509CertificateContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -269,7 +269,7 @@ class XSecParser::DsX509SerialNumberContext public: DsX509SerialNumberContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -290,7 +290,7 @@ class XSecParser::DsX509IssuerNameContext public: DsX509IssuerNameContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -312,7 +312,7 @@ class XSecParser::DsX509IssuerSerialContext public: DsX509IssuerSerialContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rIssuerName, OUString & rSerialNumber) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rX509IssuerName(rIssuerName) @@ -321,7 +321,7 @@ class XSecParser::DsX509IssuerSerialContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509IssuerName") @@ -349,7 +349,7 @@ class XSecParser::DsX509DataContext public: DsX509DataContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -360,7 +360,7 @@ class XSecParser::DsX509DataContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509IssuerSerial") @@ -383,7 +383,7 @@ class XSecParser::DsKeyInfoContext { public: DsKeyInfoContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -395,7 +395,7 @@ class XSecParser::DsKeyInfoContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "X509Data") @@ -422,7 +422,7 @@ class XSecParser::DsSignatureValueContext public: DsSignatureValueContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -452,7 +452,7 @@ class XSecParser::DsDigestValueContext public: DsDigestValueContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -479,7 +479,7 @@ class XSecParser::DsDigestMethodContext public: DsDigestMethodContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_Int32 & rReferenceDigestID) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rReferenceDigestID(rReferenceDigestID) @@ -518,7 +518,7 @@ class XSecParser::DsTransformContext public: DsTransformContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool & rIsC14N) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rIsC14N(rIsC14N) @@ -548,7 +548,7 @@ class XSecParser::DsTransformsContext public: DsTransformsContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool & rIsC14N) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rIsC14N(rIsC14N) @@ -556,7 +556,7 @@ class XSecParser::DsTransformsContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Transform") @@ -581,7 +581,7 @@ class XSecParser::DsReferenceContext public: DsReferenceContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -625,7 +625,7 @@ class XSecParser::DsReferenceContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Transforms") @@ -649,7 +649,7 @@ class XSecParser::DsSignatureMethodContext { public: DsSignatureMethodContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -671,7 +671,7 @@ class XSecParser::DsSignedInfoContext { public: DsSignedInfoContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -688,7 +688,7 @@ class XSecParser::DsSignedInfoContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureMethod") @@ -712,7 +712,7 @@ class XSecParser::XadesEncapsulatedX509CertificateContext public: XadesEncapsulatedX509CertificateContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -739,7 +739,7 @@ class XSecParser::XadesCertificateValuesContext { public: XadesCertificateValuesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -751,7 +751,7 @@ class XSecParser::XadesCertificateValuesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "EncapsulatedX509Certificate") @@ -768,7 +768,7 @@ class XSecParser::XadesUnsignedSignaturePropertiesContext { public: XadesUnsignedSignaturePropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -780,7 +780,7 @@ class XSecParser::XadesUnsignedSignaturePropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "CertificateValues") @@ -811,7 +811,7 @@ class XSecParser::XadesUnsignedPropertiesContext { public: XadesUnsignedPropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -823,7 +823,7 @@ class XSecParser::XadesUnsignedPropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "UnsignedSignatureProperties") @@ -843,7 +843,7 @@ class XSecParser::LoSignatureLineIdContext public: LoSignatureLineIdContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -875,7 +875,7 @@ class XSecParser::LoSignatureLineValidImageContext public: LoSignatureLineValidImageContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -907,7 +907,7 @@ class XSecParser::LoSignatureLineInvalidImageContext public: LoSignatureLineInvalidImageContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -936,14 +936,14 @@ class XSecParser::LoSignatureLineContext { public: LoSignatureLineContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_LO_EXT && rName == "SignatureLineId") @@ -971,7 +971,7 @@ class XSecParser::XadesCertDigestContext public: XadesCertDigestContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rDigestValue, sal_Int32 & rReferenceDigestID) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rDigestValue(rDigestValue) @@ -980,7 +980,7 @@ class XSecParser::XadesCertDigestContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "DigestMethod") @@ -1006,7 +1006,7 @@ class XSecParser::XadesCertContext public: XadesCertContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1025,7 +1025,7 @@ class XSecParser::XadesCertContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "CertDigest") @@ -1045,14 +1045,14 @@ class XSecParser::XadesSigningCertificateContext { public: XadesSigningCertificateContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "Cert") @@ -1071,7 +1071,7 @@ class XSecParser::XadesSigningTimeContext public: XadesSigningTimeContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1100,7 +1100,7 @@ class XSecParser::XadesSignedSignaturePropertiesContext { public: XadesSignedSignaturePropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1113,7 +1113,7 @@ class XSecParser::XadesSignedSignaturePropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SigningTime") @@ -1138,7 +1138,7 @@ class XSecParser::XadesSignedPropertiesContext { public: XadesSignedPropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1151,7 +1151,7 @@ class XSecParser::XadesSignedPropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SignedSignatureProperties") @@ -1168,7 +1168,7 @@ class XSecParser::XadesQualifyingPropertiesContext { public: XadesQualifyingPropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1181,7 +1181,7 @@ class XSecParser::XadesQualifyingPropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_XADES132 && rName == "SignedProperties") @@ -1204,7 +1204,7 @@ class XSecParser::DcDateContext public: DcDateContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -1225,7 +1225,7 @@ class XSecParser::DcDescriptionContext public: DcDescriptionContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, OUString & rValue) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) , m_rValue(rValue) @@ -1249,7 +1249,7 @@ class XSecParser::DsSignaturePropertyContext public: DsSignaturePropertyContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1285,7 +1285,7 @@ class XSecParser::DsSignaturePropertyContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DC && rName == "date") @@ -1307,7 +1307,7 @@ class XSecParser::DsSignaturePropertiesContext { public: DsSignaturePropertiesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, bool const isReferenced) : ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), isReferenced) { @@ -1320,7 +1320,7 @@ class XSecParser::DsSignaturePropertiesContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureProperty") @@ -1336,7 +1336,7 @@ class XSecParser::DsObjectContext { public: DsObjectContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) // init with "false" here - the Signature element can't be referenced by its child : XSecParser::ReferencedContextImpl(rParser, std::move(pOldNamespaceMap), false) { @@ -1349,7 +1349,7 @@ class XSecParser::DsObjectContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignatureProperties") @@ -1370,7 +1370,7 @@ class XSecParser::DsSignatureContext { public: DsSignatureContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } @@ -1388,7 +1388,7 @@ class XSecParser::DsSignatureContext } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "SignedInfo") @@ -1416,13 +1416,13 @@ class XSecParser::DsigSignaturesContext { public: DsigSignaturesContext(XSecParser & rParser, - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap) + std::optional<SvXMLNamespaceMap> pOldNamespaceMap) : XSecParser::Context(rParser, std::move(pOldNamespaceMap)) { } virtual std::unique_ptr<Context> CreateChildContext( - std::unique_ptr<SvXMLNamespaceMap> pOldNamespaceMap, + std::optional<SvXMLNamespaceMap> pOldNamespaceMap, sal_uInt16 const nNamespace, OUString const& rName) override { if (nNamespace == XML_NAMESPACE_DS && rName == "Signature") @@ -1436,7 +1436,7 @@ class XSecParser::DsigSignaturesContext XSecParser::XSecParser(XMLSignatureHelper& rXMLSignatureHelper, XSecController* pXSecController) - : m_pNamespaceMap(new SvXMLNamespaceMap) + : m_pNamespaceMap(SvXMLNamespaceMap()) , m_pXSecController(pXSecController) , m_rXMLSignatureHelper(rXMLSignatureHelper) { @@ -1498,7 +1498,7 @@ void SAL_CALL XSecParser::startElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttribs ) { assert(m_pNamespaceMap); - std::unique_ptr<SvXMLNamespaceMap> pRewindMap( + std::optional<SvXMLNamespaceMap> pRewindMap( SvXMLImport::processNSAttributes(m_pNamespaceMap, nullptr, xAttribs)); OUString localName; @@ -1527,7 +1527,6 @@ void SAL_CALL XSecParser::startElement( } m_ContextStack.push(std::move(pContext)); - assert(!pRewindMap); try { diff --git a/xmlsecurity/source/helper/xsecparser.hxx b/xmlsecurity/source/helper/xsecparser.hxx index 86f6154ddc93..fa2d4a8bc4ab 100644 --- a/xmlsecurity/source/helper/xsecparser.hxx +++ b/xmlsecurity/source/helper/xsecparser.hxx @@ -26,6 +26,7 @@ #include <xmloff/namespacemap.hxx> +#include <optional> #include <stack> class XMLSignatureHelper; @@ -98,7 +99,7 @@ private: class DsigSignaturesContext; std::stack<std::unique_ptr<Context>> m_ContextStack; - std::unique_ptr<SvXMLNamespaceMap> m_pNamespaceMap; + std::optional<SvXMLNamespaceMap> m_pNamespaceMap; /* * the XSecController collaborating with XSecParser _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits