sc/source/core/tool/interpr1.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
New commits: commit 3ccc4c123f5e78e0204d11abeab2d1a74278ca3e Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Thu Mar 10 10:53:12 2022 +0300 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Mar 10 22:03:06 2022 +0100 Use OUStringBuffer in ScConcat Change-Id: Ic1ee6e1a1d13afd7d205cdfb9f76f5e29a176378 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131298 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index db8b282500ba..d79962324754 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -9752,16 +9752,20 @@ void ScInterpreter::ScRept() void ScInterpreter::ScConcat() { sal_uInt8 nParamCount = GetByte(); - OUString aRes; + + //reverse order of parameter stack to simplify processing + ReverseStack(nParamCount); + + OUStringBuffer aRes; while( nParamCount-- > 0) { OUString aStr = GetString().getString(); if (CheckStringResultLen(aRes, aStr.getLength())) - aRes = aStr + aRes; + aRes.append(aStr); else break; } - PushString( aRes ); + PushString( aRes.makeStringAndClear() ); } FormulaError ScInterpreter::GetErrorType()