diff options
Diffstat (limited to 'formula')
-rw-r--r-- | formula/source/core/api/FormulaCompiler.cxx | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx index 3b3f9f68da43..dd728def725c 100644 --- a/formula/source/core/api/FormulaCompiler.cxx +++ b/formula/source/core/api/FormulaCompiler.cxx @@ -692,8 +692,19 @@ FormulaCompiler::OpCodeMapPtr FormulaCompiler::GetOpCodeMap( const sal_Int32 nLa case FormulaLanguage::ODF_11 : if (!mxSymbolsPODF) InitSymbolsPODF(); + /* FIXME: only temporarily init mxSymbolsAPI here */ + if (!mxSymbolsAPI) + InitSymbolsAPI(); xMap = mxSymbolsPODF; break; +/* FIXME: add FormulaLanguage::API constant */ +#if 0 + case FormulaLanguage::API : + if (!mxSymbolsAPI) + InitSymbolsAPI(); + xMap = mxSymbolsAPI; + break; +#endif case FormulaLanguage::ENGLISH : if (!mxSymbolsEnglish) InitSymbolsEnglish(); @@ -816,6 +827,16 @@ void FormulaCompiler::InitSymbolsPODF() const mxSymbolsPODF = aMap.mxSymbolMap; } +void FormulaCompiler::InitSymbolsAPI() const +{ + static OpCodeMapData aMap; + osl::MutexGuard aGuard(&aMap.maMtx); + if (!aMap.mxSymbolMap) + // XFunctionAccess API always used PODF grammar, keep it. + loadSymbols(RID_STRLIST_FUNCTION_NAMES_ENGLISH_API, FormulaGrammar::GRAM_PODF, aMap.mxSymbolMap, RESOURCE_BASE); + mxSymbolsAPI = aMap.mxSymbolMap; +} + void FormulaCompiler::InitSymbolsODFF() const { static OpCodeMapData aMap; |