[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