sc/source/core/data/document.cxx |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 7732f806dfcc9375757e7ccbe1ca3c1d194af266
Author: Michael Meeks <michael.me...@collabora.com>
Date:   Tue May 20 08:13:53 2014 +0100

    ODS load perf: avoid excessive calls to uppercase to compare tab names.
    
    Change-Id: I37b9e49607c8c51f10bc8ff8fc342b02fdb8b7e1

diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index d72e7db..97c10ca 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -237,7 +237,16 @@ bool ScDocument::GetCodeName( SCTAB nTab, OUString& rName 
) const
 
 bool ScDocument::GetTable( const OUString& rName, SCTAB& rTab ) const
 {
-    OUString aUpperName = ScGlobal::pCharClass->uppercase(rName);
+    OUString aUpperName;
+    static OUString aCacheName, aCacheUpperName;
+
+    if (aCacheName != rName)
+    {
+        aCacheName = rName;
+        // surprisingly slow ...
+        aCacheUpperName = ScGlobal::pCharClass->uppercase(rName);
+    }
+    aUpperName = aCacheUpperName;
 
     for (SCTAB i=0; i< static_cast<SCTAB>(maTabs.size()); i++)
         if (maTabs[i])
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to