diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2017-05-22 21:08:56 -0400 |
---|---|---|
committer | Kohei Yoshida <libreoffice@kohei.us> | 2017-05-24 05:19:40 +0200 |
commit | d4cd8677889ec3807c194ef5b462f8e031807e5b (patch) | |
tree | 4b53429527d6358d145feef9912d0460924cbde0 /sc/inc/mtvcellfunc.hxx | |
parent | 7948e84091f37fbda75f524f20138d1171918e64 (diff) |
tdf#107945: properly iterate over mtv during pivot cache loading.
This reduces the total time required for populating the pivot cache
by ~60%.
Change-Id: I6a8511959c20231a8a5dbd0b0a9a3d0930a1fa0c
Reviewed-on: https://gerrit.libreoffice.org/37971
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Diffstat (limited to 'sc/inc/mtvcellfunc.hxx')
-rw-r--r-- | sc/inc/mtvcellfunc.hxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sc/inc/mtvcellfunc.hxx b/sc/inc/mtvcellfunc.hxx index db72fd4a3278..195e6449007a 100644 --- a/sc/inc/mtvcellfunc.hxx +++ b/sc/inc/mtvcellfunc.hxx @@ -13,6 +13,10 @@ #include "mtvelements.hxx" #include "mtvfunctions.hxx" +#include <functional> + +class ScFormulaCell; + namespace sc { template<typename Func> @@ -32,6 +36,14 @@ ProcessFormula( CellStoreType, formula_block, FuncElem, FuncElseNoOp<size_t> >(it, rStore, nRow1, nRow2, rFuncElem, aElse); } +/** + * Process formula cells found within specified row range. This function + * allows modifications of the states of the formula function objects. + */ +CellStoreType::iterator ProcessFormula( + const CellStoreType::iterator& it, CellStoreType& rStore, SCROW nRow1, SCROW nRow2, + std::function<void(size_t,ScFormulaCell*)> aFuncElem ); + template<typename FuncElem, typename FuncElse> typename CellStoreType::iterator ProcessFormula( |