summaryrefslogtreecommitdiff
path: root/sc/source/filter/oox/defnamesbuffer.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-06-25 15:37:08 +0200
committerEike Rathke <erack@redhat.com>2015-06-25 15:40:03 +0200
commit420ed9cb1d7f164be88ee2a01f79372744ed5f03 (patch)
tree5900f022cb347c14987771b60565217f52a1a106 /sc/source/filter/oox/defnamesbuffer.cxx
parent16e8ffbd5ec1fe7b81835ea6584547669d55d751 (diff)
TableRef: compile named expression into RPN once to populate information
Change-Id: Id41ca0bd6adc8152c29be4d89e9361d8fb2ffe4e
Diffstat (limited to 'sc/source/filter/oox/defnamesbuffer.cxx')
-rw-r--r--sc/source/filter/oox/defnamesbuffer.cxx7
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;
}