summaryrefslogtreecommitdiff
path: root/sc/inc/column.hxx
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2018-11-28 15:32:20 +0100
committerLuboš Luňák <l.lunak@collabora.com>2018-12-03 15:32:45 +0100
commit99014ec9ded70a679220fe59e09ab4073512c249 (patch)
tree7fab6d6e3a965bcbae8ae84514f894ff3c875f7b /sc/inc/column.hxx
parent1b489b74fe28007749bec8a3ebd56901a7652734 (diff)
make sure FetchVectorRefArray() never triggers Interpret()
Test::testFormulaRefUpdateRange could trigger this, leading to recursion that wasn't handled properly by the code, since it wasn't expected to happen at late time (ScDependantsCalculator should have already caught it). This is all caused by the fact that FetchVectorRefArray() fetches also all rows before the given rows (to make the caching simpler I suppose). But that fetching could lead to Interpret() calls. Therefore, make ScDependantsCalculator in OpenCL mode check also all rows above. Change-Id: Iaecc105663df21b01443759287cec605470d34a5 Reviewed-on: https://gerrit.libreoffice.org/64236 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'sc/inc/column.hxx')
-rw-r--r--sc/inc/column.hxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index bdaeccde0afe..0a328f001ce4 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -575,6 +575,9 @@ public:
void FillMatrix( ScMatrix& rMat, size_t nMatCol, SCROW nRow1, SCROW nRow2, svl::SharedStringPool* pPool ) const;
formula::VectorRefArray FetchVectorRefArray( SCROW nRow1, SCROW nRow2 );
bool HandleRefArrayForParallelism( SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef& mxGroup );
+#ifdef DBG_UTIL
+ void AssertNoInterpretNeeded( SCROW nRow1, SCROW nRow2 );
+#endif
void SetFormulaResults( SCROW nRow, const double* pResults, size_t nLen );
void CalculateInThread( ScInterpreterContext& rContext, SCROW nRow, size_t nLen, unsigned nThisThread, unsigned nThreadsTotal );