diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-31 13:13:36 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-01 21:39:28 +0200 |
commit | 28580110807a38e3ba6f8385f22871b8dfe0a910 (patch) | |
tree | 33ff5f3c25316926f14ffbb837025090465c2a2a /include/rtl/ustrbuf.hxx | |
parent | 58e266ae808dbf3e157b38eb2c8f24774131e0f8 (diff) |
add operator+=(OUStringBuffer) method to OUString
to reduce needless object creation and copying some more
And fix what looks like a bug in CSS hex color parsing at line
609 in sw/../parcss1.cxx that has been there since
commit 7b0b5cdfeed656b279bc32cd929630d5fc25878b "initial import"
Change-Id: Ibad42b23721a56493bd1edcd7165e6104494a5c3
Reviewed-on: https://gerrit.libreoffice.org/58357
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include/rtl/ustrbuf.hxx')
-rw-r--r-- | include/rtl/ustrbuf.hxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/rtl/ustrbuf.hxx b/include/rtl/ustrbuf.hxx index 1a40eeee8832..5f696bff906d 100644 --- a/include/rtl/ustrbuf.hxx +++ b/include/rtl/ustrbuf.hxx @@ -59,6 +59,7 @@ namespace rtl */ class SAL_WARN_UNUSED OUStringBuffer { +friend class OUString; public: /** Constructs a string buffer with no characters in it and an @@ -1615,6 +1616,18 @@ private: sal_Int32 nCapacity; }; +#if defined LIBO_INTERNAL_ONLY + // Define this here to avoid circular includes + inline OUString & OUString::operator+=( const OUStringBuffer & str ) & + { + // Call operator= if this is empty, otherwise rtl_uString_newConcat will attempt to + // acquire() the str.pData buffer, which is part of the OUStringBuffer mutable state. + if (isEmpty()) + return operator=(str.toString()); + else + return internalAppend(str.pData); + } +#endif } #ifdef RTL_STRING_UNITTEST |