[Libreoffice-commits] core.git: xmloff/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Wed Nov 18 06:26:03 UTC 2020


 xmloff/source/chart/SchXMLCalculationSettingsContext.cxx |   29 ++++++---------
 xmloff/source/chart/SchXMLCalculationSettingsContext.hxx |   10 ++---
 xmloff/source/chart/contexts.cxx                         |   19 ++++-----
 xmloff/source/chart/contexts.hxx                         |    7 +--
 4 files changed, 28 insertions(+), 37 deletions(-)

New commits:
commit f493abe7edd7dc44855bec4b3a17a2cc32a597fe
Author:     Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Tue Nov 17 20:23:04 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Nov 18 07:25:07 2020 +0100

    fastparser in SchXMLCalculationSettingsContext
    
    Change-Id: Ic1365da6453c8cf02c518b576997784c928d7f2f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106023
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
index 63896ea0a576..f013a53b5128 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
@@ -36,32 +36,27 @@ using namespace ::com::sun::star;
 using namespace ::xmloff::token;
 
 SchXMLCalculationSettingsContext::SchXMLCalculationSettingsContext( SvXMLImport& rImport,
-                                    sal_uInt16 p_nPrefix,
-                                    const OUString& rLocalName,
-                                    const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
-: SvXMLImportContext ( rImport, p_nPrefix, rLocalName )
+                                    const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
+: SvXMLImportContext ( rImport )
 {
-    const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap();
-    const sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
-    for( sal_Int16 i=0; i < nAttrCount; i++ )
+    for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) )
     {
-        const OUString sAttrName = xAttrList->getNameByIndex( i );
-        OUString aLocalName;
-        const sal_uInt16 nPrefix = rMap.GetKeyByAttrName(sAttrName, &aLocalName );
-        if ( nPrefix == XML_NAMESPACE_TABLE && IsXMLToken( aLocalName, XML_DATE_VALUE ) )
+        if ( aIter.getToken() == XML_ELEMENT(TABLE, XML_DATE_VALUE) )
         {
             util::DateTime aNullDate;
-            const OUString sValue = xAttrList->getValueByIndex( i );
-            ::sax::Converter::parseDateTime(aNullDate, sValue);
+            ::sax::Converter::parseDateTime(aNullDate, aIter.toString());
             m_aNullDate <<= aNullDate;
         }
+        else
+            XMLOFF_WARN_UNKNOWN("xmloff", aIter);
     }
 }
-SvXMLImportContextRef SchXMLCalculationSettingsContext::CreateChildContext( sal_uInt16 nPrefix,
-                                   const OUString& rLocalName,
-                                   const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
+
+css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLCalculationSettingsContext::createFastChildContext(
+    sal_Int32 /*nElement*/,
+    const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
 {
-    return new SchXMLCalculationSettingsContext(GetImport(),nPrefix,rLocalName,xAttrList);
+    return new SchXMLCalculationSettingsContext(GetImport(),xAttrList);
 }
 
 void SchXMLCalculationSettingsContext::endFastElement(sal_Int32 )
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
index a50f0d275314..559358c0afbe 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
@@ -27,13 +27,11 @@ class SchXMLCalculationSettingsContext : public SvXMLImportContext
     css::uno::Any m_aNullDate;
 public:
     SchXMLCalculationSettingsContext( SvXMLImport& rImport,
-                                    sal_uInt16 nPrefix,
-                                    const OUString& rLocalName,
-                                    const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList );
+                                    const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList );
 
-    virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
-                                   const OUString& rLocalName,
-                                   const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+        sal_Int32 nElement,
+        const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
diff --git a/xmloff/source/chart/contexts.cxx b/xmloff/source/chart/contexts.cxx
index af016b4bfde2..c6056915382a 100644
--- a/xmloff/source/chart/contexts.cxx
+++ b/xmloff/source/chart/contexts.cxx
@@ -159,25 +159,24 @@ SchXMLBodyContext::SchXMLBodyContext( SchXMLImportHelper& rImpHelper,
 SchXMLBodyContext::~SchXMLBodyContext()
 {}
 
-SvXMLImportContextRef SchXMLBodyContext::CreateChildContext(
-    sal_uInt16 nPrefix,
-    const OUString& rLocalName,
-    const uno::Reference< xml::sax::XAttributeList >& xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLBodyContext::createFastChildContext(
+    sal_Int32 nElement,
+    const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
 {
-    SvXMLImportContextRef xContext;
+    css::uno::Reference< css::xml::sax::XFastContextHandler > xContext;
 
     // <chart:chart> element
-    if( nPrefix == XML_NAMESPACE_CHART &&
-        IsXMLToken( rLocalName, XML_CHART ) )
+    if( nElement == XML_ELEMENT(CHART, XML_CHART) )
     {
         xContext = mrImportHelper.CreateChartContext( GetImport(), GetImport().GetModel() );
     }
-    else if(nPrefix == XML_NAMESPACE_TABLE &&
-            IsXMLToken( rLocalName, XML_CALCULATION_SETTINGS ))
+    else if(nElement == XML_ELEMENT(TABLE, XML_CALCULATION_SETTINGS ))
     {
         // i99104 handle null date correctly
-        xContext = new SchXMLCalculationSettingsContext ( GetImport(), nPrefix, rLocalName, xAttrList);
+        xContext = new SchXMLCalculationSettingsContext ( GetImport(), xAttrList);
     }
+    else
+        XMLOFF_WARN_UNKNOWN_ELEMENT("xmloff", nElement);
 
     return xContext;
 }
diff --git a/xmloff/source/chart/contexts.hxx b/xmloff/source/chart/contexts.hxx
index d8fe78be1a9d..81f5e6318239 100644
--- a/xmloff/source/chart/contexts.hxx
+++ b/xmloff/source/chart/contexts.hxx
@@ -83,10 +83,9 @@ public:
         sal_Int32 nElement );
     virtual ~SchXMLBodyContext() override;
 
-    virtual SvXMLImportContextRef CreateChildContext(
-        sal_uInt16 nPrefix,
-        const OUString& rLocalName,
-        const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+        sal_Int32 nElement,
+        const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 };
 
 #endif // INCLUDED_XMLOFF_SOURCE_CHART_CONTEXTS_HXX


More information about the Libreoffice-commits mailing list