summaryrefslogtreecommitdiff
path: root/include/rtl/ustrbuf.hxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-07-31 13:13:36 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-08-01 21:39:28 +0200
commit28580110807a38e3ba6f8385f22871b8dfe0a910 (patch)
tree33ff5f3c25316926f14ffbb837025090465c2a2a /include/rtl/ustrbuf.hxx
parent58e266ae808dbf3e157b38eb2c8f24774131e0f8 (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.hxx13
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