[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0-29' - include/sax sax/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Wed Oct 9 14:38:35 UTC 2019


 include/sax/fastattribs.hxx          |    5 +++++
 sax/source/fastparser/fastparser.cxx |    1 +
 2 files changed, 6 insertions(+)

New commits:
commit d2bc7fa9b35ef2a00ab4ebb2264c5fbc519ab6ea
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sat Sep 14 11:31:19 2019 +0200
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 9 16:37:32 2019 +0200

    shave 10% off load time of large docx file
    
    Change-Id: I5aacde7b6886bf47e79d055639e1b911da3be168
    Reviewed-on: https://gerrit.libreoffice.org/78900
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
    (cherry picked from commit 096b91ee15e2686d4eb7118fdb9688ba9dbc44b2)
    Reviewed-on: https://gerrit.libreoffice.org/78901
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 4659671f3c696a27139a4df98dc0894548169ace)
    Reviewed-on: https://gerrit.libreoffice.org/80504
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/include/sax/fastattribs.hxx b/include/sax/fastattribs.hxx
index 1f343a7235b9..9221c19fc376 100644
--- a/include/sax/fastattribs.hxx
+++ b/include/sax/fastattribs.hxx
@@ -78,6 +78,11 @@ public:
     virtual ~FastAttributeList() override;
 
     void clear();
+    void reserve( sal_Int32 nNumTokens )
+    {
+        maAttributeValues.reserve(nNumTokens+1);
+        maAttributeTokens.reserve(nNumTokens);
+    }
     void add( sal_Int32 nToken, const sal_Char* pValue );
     void add( sal_Int32 nToken, const sal_Char* pValue, size_t nValueLength );
     void add( sal_Int32 nToken, const OString& rValue );
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index 9959489eed3f..d2912be171f5 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -1182,6 +1182,7 @@ void FastSaxParserImpl::callbackStartElement(const xmlChar *localName , const xm
         if ( rEntity.mxTokenHandler.is() )
         {
             // #158414# second: fill attribute list with other attributes
+            rEvent.mxAttributes->reserve( numAttributes );
             for (int i = 0; i < numAttributes * 5; i += 5)
             {
                 // attributes[] is ( localname / prefix / nsURI / valueBegin / valueEnd )


More information about the Libreoffice-commits mailing list