From 9d320ec4d818f86e58a15fd46248026502b1cc94 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Mon, 8 May 2017 19:21:08 -0400 Subject: Avoid adding unnecessary overhead to formula calculation. Instead, hide the overhead within the logger code which is disabled in the release build. Change-Id: Ie80c2a1725476d96d3e5551cf0303ecb5d73b47e Reviewed-on: https://gerrit.libreoffice.org/37409 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida --- sc/source/core/data/formulacell.cxx | 7 +------ sc/source/core/tool/formulalogger.cxx | 13 ++++++++++++- 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'sc/source') diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index d1058fe4a7cb..04c19257ae17 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -4088,12 +4088,7 @@ bool ScFormulaCell::InterpretFormulaGroup() if (GetWeight() < ScInterpreter::GetGlobalConfig().mnOpenCLMinimumFormulaGroupSize) { mxGroup->meCalcState = sc::GroupCalcDisabled; - std::ostringstream os; - os << "group length below minimum threshold (" - << GetWeight() - << " < " << ScInterpreter::GetGlobalConfig().mnOpenCLMinimumFormulaGroupSize - << ")"; - aScope.addMessage(OUString::createFromAscii(os.str().data())); + aScope.addGroupSizeThreasholdMessage(*this); return false; } diff --git a/sc/source/core/tool/formulalogger.cxx b/sc/source/core/tool/formulalogger.cxx index 7c70d4c730f9..ffa29ecd06a4 100644 --- a/sc/source/core/tool/formulalogger.cxx +++ b/sc/source/core/tool/formulalogger.cxx @@ -5,13 +5,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include #include #include #include #include #include #include +#include #include #include @@ -214,6 +214,17 @@ void FormulaLogger::GroupScope::addRefMessage( mpImpl->maMessages.push_back(aBuf.makeStringAndClear()); } +void FormulaLogger::GroupScope::addGroupSizeThreasholdMessage( const ScFormulaCell& rCell ) +{ + OUStringBuffer aBuf; + aBuf.append("group length below minimum threshold ("); + aBuf.append(rCell.GetWeight()); + aBuf.append(" < "); + aBuf.append(ScInterpreter::GetGlobalConfig().mnOpenCLMinimumFormulaGroupSize); + aBuf.append(")"); + mpImpl->maMessages.push_back(aBuf.makeStringAndClear()); +} + void FormulaLogger::GroupScope::setCalcComplete() { mpImpl->mbCalcComplete = true; -- cgit