OUString concatenation vs OUStringBuffer append

Noel Power nopower at suse.com
Fri Jun 14 07:14:39 PDT 2013

On 14/06/13 14:19, Matteo Casalin wrote:
> Hi all,
>     in a recent patch [1] for String to OUString conversion I replaced the construction of an OUString from a sequence of OUStringBuffer.append to a single concatenation of OUString/constant strings [2].
> Noel Power (whom I thank for the careful review, and is here in copy), correctly asks which way is preferred for such an operation: I don't know the answer, can some expert provide me an insight on this? I find OUString concatenation easier to read, but this could be not as efficient as the original code, or just undesired.
> Thanks and kind regards
> Matteo
> [1]
> https://gerrit.libreoffice.org/#/c/4280/
> [2]
> -    OUStringBuffer aString;
> -    aString.append('(');
> -    aString.append(static_cast<sal_Int32>(nColMerge));
> -    aString.append(',');
> -    aString.append(static_cast<sal_Int32>(nRowMerge));
> -    aString.append(')');
> -    return aString.makeStringAndClear();
> +    OUString aRet = "("
> +        + OUString::number(static_cast<sal_Int32>(nColMerge))
> +        + ","
> +        + OUString::number(static_cast<sal_Int32>(nRowMerge))
> +        + ")";
> +    return aRet;

just a note, I don't find the changed code offensive or anything :-) in 
fact the opposite I find it easier on the eye than OUStringBuffer  But.. 
in this case the OUStringBuffer usage was the result of previous 
rework.  Prior to the OUStringBuffer rework the code looked quite like 
the new OUString change, I know Lubos/Stephan have done lots of stuff 
around strings and honestly ( although I am sure it probably is 
mentioned somewhere in the mailing list ) I don't know what the current 
preferred way is. I seem to remember something about OUString 
concatenation now being as efficient as OUStringBuffer these days and 
that the advantage of OUStringBuffer ( in such cases as above ) is not 
as great. but really I can't recall


More information about the LibreOffice mailing list