diff options
Diffstat (limited to 'svl/source/misc/sharedstring.cxx')
-rw-r--r-- | svl/source/misc/sharedstring.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/svl/source/misc/sharedstring.cxx b/svl/source/misc/sharedstring.cxx index 9aff3eb0eab5..d3b2cac051ce 100644 --- a/svl/source/misc/sharedstring.cxx +++ b/svl/source/misc/sharedstring.cxx @@ -11,13 +11,15 @@ namespace svl { -SharedString SharedString::getEmptyString() +/** ref-counting traffic associated with SharedString temporaries can be significant, so use a singleton here, so we can return a const& from getEmptyString */ +static OUString EMPTY(u""); +const SharedString EMPTY_SHARED_STRING(EMPTY.pData, EMPTY.pData); + +const SharedString & SharedString::getEmptyString() { // unicode string array for empty string is globally shared in OUString. // Let's take advantage of that. - rtl_uString* pData = nullptr; - rtl_uString_new(&pData); - return SharedString(pData, pData); + return EMPTY_SHARED_STRING; } SharedString::SharedString() : mpData(nullptr), mpDataIgnoreCase(nullptr) {} |