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

Kohei Yoshida kohei.yoshida at collabora.com
Fri Jan 31 15:02:04 PST 2014


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

New commits:
commit a995462e6855061816c6529c366f20ace2b45868
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri Jan 31 18:05:05 2014 -0500

    Take advantage of segment-based hidden flag storage.
    
    To avoid querying this states for every single column and row.
    
    Change-Id: I3e570ae5309c826e809c170ea4635dd37c9b0d43

diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
index c0a3005..09f9c78 100644
--- a/sc/source/core/data/table4.cxx
+++ b/sc/source/core/data/table4.cxx
@@ -1270,10 +1270,19 @@ void ScTable::FillAutoSimple(
     CellType eCellType = CELLTYPE_NONE;
     bool bIsOrdinalSuffix = false;
 
+    bool bColHidden = false, bRowHidden = false;
+    SCCOL nColHiddenLast = -1;
+    SCROW nRowHiddenLast = -1;
+
     rInner = nIStart;
     while (true)        // #i53728# with "for (;;)" old solaris/x86 compiler mis-optimizes
     {
-        if(!ColHidden(rCol) && !RowHidden(rRow))
+        if (rCol > nColHiddenLast)
+            bColHidden = ColHidden(rCol, NULL, &nColHiddenLast);
+        if (rRow > nRowHiddenLast)
+            bRowHidden = RowHidden(rRow, NULL, &nRowHiddenLast);
+
+        if (!bColHidden && !bRowHidden)
         {
             if ( bGetCell )
             {


More information about the Libreoffice-commits mailing list