summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-05-19 19:20:27 +0200
committerEike Rathke <erack@redhat.com>2017-05-22 11:00:56 +0200
commit6a569fd47e3665b0aaec397ace0346938bb3b4bf (patch)
treedb5e9421d4ea7dc7a1d2bbdf1666f77152feabb4
parent118401aae4516bf4cc122e96b376d129ab3a3d5e (diff)
Introduce ScJumpMatrix::mvRefList for array of reference results, tdf#58874
Change-Id: I478ddbcd951b386b8d4cbb38059b904af7c79703
-rw-r--r--sc/source/core/inc/jumpmatrix.hxx3
-rw-r--r--sc/source/core/tool/jumpmatrix.cxx5
2 files changed, 8 insertions, 0 deletions
diff --git a/sc/source/core/inc/jumpmatrix.hxx b/sc/source/core/inc/jumpmatrix.hxx
index 94b8dc1737aa..1c61b330108d 100644
--- a/sc/source/core/inc/jumpmatrix.hxx
+++ b/sc/source/core/inc/jumpmatrix.hxx
@@ -26,6 +26,7 @@
#include <vector>
#include "types.hxx"
#include "address.hxx"
+#include "token.hxx"
typedef ::std::vector< const formula::FormulaToken*> ScTokenVec;
@@ -58,6 +59,7 @@ class ScJumpMatrix
{
std::vector<ScJumpMatrixEntry> mvJump; // the jumps
ScMatrixRef pMat; // the results
+ ScRefList mvRefList; // array of references result, if any
ScTokenVec* pParams; // parameter stack
SCSIZE nCols;
SCSIZE nRows;
@@ -108,6 +110,7 @@ public:
bool Next( SCSIZE& rCol, SCSIZE& rRow );
void GetResMatDimensions( SCSIZE& rCols, SCSIZE& rRows );
void SetNewResMat( SCSIZE nNewCols, SCSIZE nNewRows );
+ ScRefList& GetRefList();
void PutResultDouble( double fVal, SCSIZE nC, SCSIZE nR );
void PutResultString( const svl::SharedString& rStr, SCSIZE nC, SCSIZE nR );
diff --git a/sc/source/core/tool/jumpmatrix.cxx b/sc/source/core/tool/jumpmatrix.cxx
index 760f89735db6..cc7455f42a5d 100644
--- a/sc/source/core/tool/jumpmatrix.cxx
+++ b/sc/source/core/tool/jumpmatrix.cxx
@@ -176,6 +176,11 @@ bool ScJumpMatrix::HasResultMatrix() const
return pMat.get() != nullptr;
}
+ScRefList& ScJumpMatrix::GetRefList()
+{
+ return mvRefList;
+}
+
void ScJumpMatrix::FlushBufferOtherThan( ScJumpMatrix::BufferType eType, SCSIZE nC, SCSIZE nR )
{
if (!mvBufferDoubles.empty() &&