diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-05-15 15:58:46 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-05-16 12:34:42 +0200 |
commit | ace16e500c92797bb47ad580cf535de0702137bd (patch) | |
tree | 165eb099aa0bb9eeadaf4806b8e98e52739aa05e /sc/inc/table.hxx | |
parent | 0d58f51d7672c569c93c6e814dbfffa586eebfb7 (diff) |
cache mdds access in ScTable::ValidQuery() (tdf#80853)
Once more, mdds always searches from the start of the container,
so iterating is quadratic.
Change-Id: I8f8f3b5aad5c3342a10c21df3ad2d0d3fcaea8ad
Reviewed-on: https://gerrit.libreoffice.org/72368
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 | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 547d9936e44b..59dc2bbfd7dc 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -64,6 +64,7 @@ class ColumnSpanSet; class RangeColumnSpanSet; class ColumnSet; struct ColumnBlockPosition; +class TableColumnBlockPositionSet; struct RefUpdateContext; struct RefUpdateInsertTabContext; struct RefUpdateDeleteTabContext; @@ -930,7 +931,8 @@ public: bool ValidQuery( SCROW nRow, const ScQueryParam& rQueryParam, const ScRefCellValue* pCell = nullptr, - bool* pbTestEqualCondition = nullptr, const ScInterpreterContext* pContext = nullptr); + bool* pbTestEqualCondition = nullptr, const ScInterpreterContext* pContext = nullptr, + sc::TableColumnBlockPositionSet* pBlockPos = nullptr ); void TopTenQuery( ScQueryParam& ); SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub); bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam); |