xmloff/source/draw/ximpcustomshape.cxx |   16 ++++++----------
 xmloff/source/draw/ximpcustomshape.hxx |    4 +++-
 2 files changed, 9 insertions(+), 11 deletions(-)

New commits:
commit 9a932af7acd57d8ff5815808f8c6cab401782d7e
Author:     Noel <[email protected]>
AuthorDate: Mon Nov 30 15:02:08 2020 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Mon Nov 30 18:37:36 2020 +0100

    fastparser in XMLEnhancedCustomShapeContext
    
    Change-Id: Ib83a8b5a7fcbcdaf62b59b3552256c045cc67dde
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106866
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/xmloff/source/draw/ximpcustomshape.cxx 
b/xmloff/source/draw/ximpcustomshape.cxx
index b1cf0740ab6c..e85143e0b1d4 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -860,20 +860,16 @@ static void GetAdjustmentValues( std::vector< 
css::beans::PropertyValue >& rDest
     }
 }
 
-void XMLEnhancedCustomShapeContext::StartElement( const uno::Reference< 
xml::sax::XAttributeList >& xAttrList )
+void XMLEnhancedCustomShapeContext::startFastElement(
+    sal_Int32 /*nElement*/,
+    const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
 {
-    sal_Int16 nLength = xAttrList->getLength();
-    if ( !nLength )
-        return;
-
     sal_Int32               nAttrNumber;
-    for( sal_Int16 nAttr = 0; nAttr < nLength; nAttr++ )
+    for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) )
     {
-        OUString aLocalName;
-        const OUString& rValue = xAttrList->getValueByIndex( nAttr );
-        /* sven fixme, this must be checked! sal_uInt16 nPrefix = */ 
GetImport().GetNamespaceMap().GetKeyByAttrName( xAttrList->getNameByIndex( 
nAttr ), &aLocalName );
+        OUString rValue = aIter.toString();
 
-        switch( EASGet( aLocalName ) )
+        switch( EASGet( aIter.getToken() ) )
         {
             case EAS_type :
                 GetString( mrCustomShapeGeometry, rValue, EAS_Type );
diff --git a/xmloff/source/draw/ximpcustomshape.hxx 
b/xmloff/source/draw/ximpcustomshape.hxx
index d4a9f839d54d..4700388bf110 100644
--- a/xmloff/source/draw/ximpcustomshape.hxx
+++ b/xmloff/source/draw/ximpcustomshape.hxx
@@ -54,7 +54,9 @@ public:
     XMLEnhancedCustomShapeContext( SvXMLImport& rImport, css::uno::Reference< 
css::drawing::XShape > &, sal_uInt16 nPrefix,
         const OUString& rLocalName, std::vector< css::beans::PropertyValue >& 
rCustomShapeGeometry );
 
-    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;
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL 
createFastChildContext(
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to