[ooo-build-commit] Branch 'ooo-build-3-1-1' - patches/dev300

Kohei Yoshida kohei at kemper.freedesktop.org
Wed Nov 25 11:08:57 PST 2009


 patches/dev300/apply                               |    3 +
 patches/dev300/calc-perf-filtering-with-notes.diff |   35 +++++++++++++++++++++
 2 files changed, 38 insertions(+)

New commits:
commit cdcdc572866fa23fd854f07cc5be6fcf18f5b4d1
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Wed Nov 25 14:06:21 2009 -0500

    Speed up filtering performance in presence of cell notes.
    
    * patches/dev300/apply:
    * patches/dev300/calc-perf-filtering-with-notes.diff: set draw
      page size *only once* after the entire filtering operation is
      complete, instead of each time a single row is filtered.  This
      speeds up filtering speed considerably depending on how many rows
      get filtered and how many cell notes the sheet has.  With the
      test document I had the filtering time was reduced from 45 seconds
      to 0.66 seconds. (n#556927)

diff --git a/patches/dev300/apply b/patches/dev300/apply
index be7a8e6..8710941 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3474,6 +3474,9 @@ calc-xls-import-slanted-border-oox.diff, n#549728, i#38709, kohei
 # Fix incorrect import of sheet protection options.
 calc-xls-import-sheet-protection-fix.diff, n#542024, kohei
 
+# Speed up filtering performance with notes.
+calc-perf-filtering-with-notes.diff, n#556927, kohei
+
 [ CalcExperimental and CalcRowLimit ]
 # speed up row's hidden state query during pagenation.
 calc-perf-page-and-manual-breaks-fwd-iterator.diff, n#503482, kohei
diff --git a/patches/dev300/calc-perf-filtering-with-notes.diff b/patches/dev300/calc-perf-filtering-with-notes.diff
new file mode 100644
index 0000000..4a29fb7
--- /dev/null
+++ b/patches/dev300/calc-perf-filtering-with-notes.diff
@@ -0,0 +1,35 @@
+diff --git sc/source/core/data/table2.cxx sc/source/core/data/table2.cxx
+index c3ee408..86e9e1d 100644
+--- sc/source/core/data/table2.cxx
++++ sc/source/core/data/table2.cxx
+@@ -2500,7 +2500,6 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
+ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+ {
+     SCROW nStartRow = nRow1;
+-    nRecalcLvl++;
+     while (nStartRow <= nRow2)
+     {
+         SCROW nEndRow = -1;
+@@ -2540,9 +2539,6 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+     //	to be done here.
+     if (pOutlineTable)
+         UpdateOutlineRow( nRow1, nRow2, bShow );
+-
+-    if( !--nRecalcLvl )
+-        SetDrawPageSize();
+ }
+ 
+ 
+diff --git sc/source/core/data/table3.cxx sc/source/core/data/table3.cxx
+index 6da3d50..20b4f49 100644
+--- sc/source/core/data/table3.cxx
++++ sc/source/core/data/table3.cxx
+@@ -1648,6 +1648,8 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, BOOL bKeepSub)
+ 
+     delete[] pSpecial;
+ 
++    SetDrawPageSize();
++
+     return nCount;
+ }
+ 


More information about the ooo-build-commit mailing list