diff options
author | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-01-09 11:17:09 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-01-09 11:29:50 -0500 |
commit | b6fbc8642928893ca608a35b802032cfe42e40bb (patch) | |
tree | d7b1c0185c1fcfcdee133e9375f65ea45665c2e8 /sc/inc/cell.hxx | |
parent | b7d0dd5252bdec31fcc925037aa7916b9fffeca7 (diff) |
fdo#58539: Correctly set cached matrix formula result.
During the import, a cached matrix value only has an empty matrix
of correct geometry, plus the token type of the top-left cell. The
rest of the elements are imported as hybrid values. For now, this
seems to do the trick.
In the future we may want to change it to fully populate the matrix
cache value during the import, and skip setting the hybrid values for
the non-top-left elements.
This commit also make several other trivial changes:
* Mark pRawToken mutable so that we can mark those IsFoo() methods
const.
* Move the ScCompiler instance from static instance to member of
ScXMLImport. Since we don't need the instance to persist once the
import is over, this is more appropriate.
Change-Id: I1abde03c0fcd91b02ef4dbf8b5526f7965eaf19c
Diffstat (limited to 'sc/inc/cell.hxx')
-rw-r--r-- | sc/inc/cell.hxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sc/inc/cell.hxx b/sc/inc/cell.hxx index ee040a280014..716b76f4113c 100644 --- a/sc/inc/cell.hxx +++ b/sc/inc/cell.hxx @@ -493,6 +493,11 @@ public: const formula::FormulaGrammar::Grammar eGrammar ) { aResult.SetHybridFormula( r); eTempGrammar = eGrammar; } + void SetResultMatrix( SCCOL nCols, SCROW nRows, const ScConstMatrixRef& pMat, formula::FormulaToken* pUL ) + { + aResult.SetMatrix(nCols, nRows, pMat, pUL); + } + /** For import only: set a double result. Use this instead of SetHybridDouble() if there is no (temporary) formula string because the formula is present as a token array, as it |