diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-05-14 15:59:29 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-05-14 22:06:44 +0200 |
commit | fce7c123203c91f62b45447f45e1d1f1b45d5b48 (patch) | |
tree | 0a5e4973d4d2a208b4b1722fe94c072a5d4db0d2 /sc/inc/table.hxx | |
parent | aa446591b7feb5bb667533ef7acdfc636105f9d9 (diff) |
cache cell positions when searching in calc (tdf#108347)
The document has a large number of rows, and mdds normally always searches
from the first item when looking up the container position, which leads
to a quadratic cost when searching the entire sheet. GetCellValue()
already has a variant that caches the last position, so just use it
(and make sure to invalidate if it's search&replace and something changes).
Change-Id: I26da60cebf641e10ed92e548fe5f9016900d3cf0
Reviewed-on: https://gerrit.libreoffice.org/72290
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'sc/inc/table.hxx')
-rw-r--r-- | sc/inc/table.hxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index dbbf7b57d831..547d9936e44b 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -1106,7 +1106,7 @@ private: const ScPatternAttr& rAttr, sal_uInt16 nFormatNo); void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData); void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData); - bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRow, + bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition& rBlockPos, SCROW nRow, const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc); bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc); |