xmloff/source/text/XMLChangeImportContext.cxx | 52 +++++++++++++------------- xmloff/source/text/XMLChangeImportContext.hxx | 5 +- 2 files changed, 30 insertions(+), 27 deletions(-)
New commits: commit b794ea29531bce1e3972e88bbb80cd7c5ef89400 Author: Noel <[email protected]> AuthorDate: Mon Nov 30 15:23:16 2020 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Tue Dec 1 06:58:42 2020 +0100 fastparser in XMLChangeImportContext Change-Id: I1d083a48caacb88e37ee2c669ec63c9b68cc664a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106869 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/xmloff/source/text/XMLChangeImportContext.cxx b/xmloff/source/text/XMLChangeImportContext.cxx index 44a942cbc3b1..6938c9cdf760 100644 --- a/xmloff/source/text/XMLChangeImportContext.cxx +++ b/xmloff/source/text/XMLChangeImportContext.cxx @@ -22,6 +22,7 @@ #include <xmloff/xmlnamespace.hxx> #include <xmloff/namespacemap.hxx> #include <xmloff/xmltoken.hxx> +#include <sal/log.hxx> using ::com::sun::star::uno::Reference; using ::com::sun::star::xml::sax::XAttributeList; @@ -45,39 +46,40 @@ XMLChangeImportContext::~XMLChangeImportContext() { } -void XMLChangeImportContext::StartElement( - const Reference<XAttributeList>& xAttrList) +void XMLChangeImportContext::startFastElement( + sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { - sal_Int16 nLength = xAttrList->getLength(); - for(sal_Int16 nAttr = 0; nAttr < nLength; nAttr++) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap(). - GetKeyByAttrName( xAttrList->getNameByIndex(nAttr), - &sLocalName ); - if ( (XML_NAMESPACE_TEXT == nPrefix) && - IsXMLToken( sLocalName, XML_CHANGE_ID ) ) + switch(aIter.getToken()) { - // Id found! Now call RedlineImportHelper + case XML_ELEMENT(TEXT, XML_CHANGE_ID): + { + // Id found! Now call RedlineImportHelper - // prepare parameters - rtl::Reference<XMLTextImportHelper> rHelper = - GetImport().GetTextImport(); - OUString sID = xAttrList->getValueByIndex(nAttr); + // prepare parameters + rtl::Reference<XMLTextImportHelper> rHelper = + GetImport().GetTextImport(); + OUString sID = aIter.toString(); - // <text:change> is both start and end - if (Element::START == m_Element || Element::POINT == m_Element) - rHelper->RedlineSetCursor(sID, true, m_bIsOutsideOfParagraph); - if (Element::END == m_Element || Element::POINT == m_Element) - rHelper->RedlineSetCursor(sID, false, m_bIsOutsideOfParagraph); + // <text:change> is both start and end + if (Element::START == m_Element || Element::POINT == m_Element) + rHelper->RedlineSetCursor(sID, true, m_bIsOutsideOfParagraph); + if (Element::END == m_Element || Element::POINT == m_Element) + rHelper->RedlineSetCursor(sID, false, m_bIsOutsideOfParagraph); - // outside of paragraph and still open? set open redline ID - if (m_bIsOutsideOfParagraph) - { - rHelper->SetOpenRedlineId(sID); + // outside of paragraph and still open? set open redline ID + if (m_bIsOutsideOfParagraph) + { + rHelper->SetOpenRedlineId(sID); + } + break; } + // else: ignore + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } - // else: ignore } } diff --git a/xmloff/source/text/XMLChangeImportContext.hxx b/xmloff/source/text/XMLChangeImportContext.hxx index 4f6f4de65187..4040cc0f2413 100644 --- a/xmloff/source/text/XMLChangeImportContext.hxx +++ b/xmloff/source/text/XMLChangeImportContext.hxx @@ -58,8 +58,9 @@ public: virtual ~XMLChangeImportContext() override; - virtual void StartElement( - const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; private: Element m_Element; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
