summaryrefslogtreecommitdiff
path: root/sc/inc/mtvcellfunc.hxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2017-05-22 21:08:56 -0400
committerKohei Yoshida <libreoffice@kohei.us>2017-05-24 05:19:40 +0200
commitd4cd8677889ec3807c194ef5b462f8e031807e5b (patch)
tree4b53429527d6358d145feef9912d0460924cbde0 /sc/inc/mtvcellfunc.hxx
parent7948e84091f37fbda75f524f20138d1171918e64 (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.hxx12
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(