writerfilter/source/rtftok/rtftokenizer.cxx |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

New commits:
commit c168f15a74fbd6231e1bbbe93939d8e26937b517
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Sun Mar 27 21:37:49 2022 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Mon Mar 28 17:58:56 2022 +0200

    Micro-optim of RTFTokenizer::resolveKeyword
    
    Change-Id: I320df7087e5b9594e7d08a892468ad2cc9a00426
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132152
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx 
b/writerfilter/source/rtftok/rtftokenizer.cxx
index 6e9580ed51e2..4dc80416c64f 100644
--- a/writerfilter/source/rtftok/rtftokenizer.cxx
+++ b/writerfilter/source/rtftok/rtftokenizer.cxx
@@ -183,10 +183,6 @@ void RTFTokenizer::popGroup() { m_nGroup--; }
 RTFError RTFTokenizer::resolveKeyword()
 {
     char ch;
-    OStringBuffer aBuf(32);
-    bool bNeg = false;
-    bool bParam = false;
-    int nParam = 0;
 
     Strm().ReadChar(ch);
     if (Strm().eof())
@@ -194,12 +190,11 @@ RTFError RTFTokenizer::resolveKeyword()
 
     if (!rtl::isAsciiAlpha(static_cast<unsigned char>(ch)))
     {
-        aBuf.append(ch);
-        OString aKeyword = aBuf.makeStringAndClear();
         // control symbols aren't followed by a space, so we can return here
         // without doing any SeekRel()
-        return dispatchKeyword(aKeyword, bParam, nParam);
+        return dispatchKeyword(OString(ch), false, 0);
     }
+    OStringBuffer aBuf(32);
     while (rtl::isAsciiAlpha(static_cast<unsigned char>(ch)))
     {
         aBuf.append(ch);
@@ -215,6 +210,7 @@ RTFError RTFTokenizer::resolveKeyword()
         }
     }
 
+    bool bNeg = false;
     if (ch == '-')
     {
         // in case we'll have a parameter, that will be negative
@@ -223,6 +219,8 @@ RTFError RTFTokenizer::resolveKeyword()
         if (Strm().eof())
             return RTFError::UNEXPECTED_EOF;
     }
+    bool bParam = false;
+    int nParam = 0;
     if (rtl::isAsciiDigit(static_cast<unsigned char>(ch)))
     {
         OStringBuffer aParameter;

Reply via email to