summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-08-25 14:44:08 +0200
committerNoel Grandin <noel@peralex.com>2016-08-29 09:23:46 +0200
commit2b8c88b475455d2f4e66f8a632d96f42d1e223ca (patch)
tree212ec80acd2dbda7338ee2cf55ea3208eceb36ea /svl
parent6380dde50f2f7c2e93c3ef3a1c88254cd3760d7f (diff)
cid#1371226 Missing move assignment operator
Change-Id: I915b24d8f546f156b85ad18ad0418903fa3ce1ba
Diffstat (limited to 'svl')
-rw-r--r--svl/source/misc/sharedstring.cxx22
1 files changed, 22 insertions, 0 deletions
diff --git a/svl/source/misc/sharedstring.cxx b/svl/source/misc/sharedstring.cxx
index b81f8fcf8072..9235783ce774 100644
--- a/svl/source/misc/sharedstring.cxx
+++ b/svl/source/misc/sharedstring.cxx
@@ -44,6 +44,12 @@ SharedString::SharedString( const SharedString& r ) : mpData(r.mpData), mpDataIg
rtl_uString_acquire(mpDataIgnoreCase);
}
+SharedString::SharedString( SharedString&& r ) : mpData(r.mpData), mpDataIgnoreCase(r.mpDataIgnoreCase)
+{
+ r.mpData = nullptr;
+ r.mpDataIgnoreCase = nullptr;
+}
+
SharedString::~SharedString()
{
if (mpData)
@@ -70,6 +76,22 @@ SharedString& SharedString::operator= ( const SharedString& r )
return *this;
}
+SharedString& SharedString::operator= ( SharedString&& r )
+{
+ if (mpData)
+ rtl_uString_release(mpData);
+ if (mpDataIgnoreCase)
+ rtl_uString_release(mpDataIgnoreCase);
+
+ mpData = r.mpData;
+ mpDataIgnoreCase = r.mpDataIgnoreCase;
+
+ r.mpData = nullptr;
+ r.mpDataIgnoreCase = nullptr;
+
+ return *this;
+}
+
bool SharedString::operator== ( const SharedString& r ) const
{
// Only compare case sensitive strings.