diff options
author | Eike Rathke <erack@redhat.com> | 2015-06-25 15:37:08 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-06-25 15:40:03 +0200 |
commit | 420ed9cb1d7f164be88ee2a01f79372744ed5f03 (patch) | |
tree | 5900f022cb347c14987771b60565217f52a1a106 /sc | |
parent | 16e8ffbd5ec1fe7b81835ea6584547669d55d751 (diff) |
TableRef: compile named expression into RPN once to populate information
Change-Id: Id41ca0bd6adc8152c29be4d89e9361d8fb2ffe4e
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/oox/defnamesbuffer.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx index a24c96a67b2a..fa2a0cf6b685 100644 --- a/sc/source/filter/oox/defnamesbuffer.cxx +++ b/sc/source/filter/oox/defnamesbuffer.cxx @@ -387,6 +387,13 @@ std::unique_ptr<ScTokenArray> DefinedName::getScTokens() ScCompiler aCompiler(&getScDocument(), ScAddress(0, 0, mnCalcSheet)); aCompiler.SetGrammar(formula::FormulaGrammar::GRAM_OOXML); std::unique_ptr<ScTokenArray> pArray(aCompiler.CompileString(maModel.maFormula)); + // Compile the tokens into RPN once to populate information into tokens + // where necessary, e.g. for TableRef inner reference. RPN can be discarded + // after, a resulting error must be reset. + sal_uInt16 nErr = pArray->GetCodeError(); + aCompiler.CompileTokenArray(); + pArray->DelRPN(); + pArray->SetCodeError(nErr); return pArray; } |