Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1495)

Unified Diff: Source/wtf/text/WTFString.h

Issue 402163002: Revert of Remove user-defined move constructor and assignment operator from WTF::String (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/wtf/text/WTFString.h
diff --git a/Source/wtf/text/WTFString.h b/Source/wtf/text/WTFString.h
index c7650b50e9096329045deedd181dc733ef0e363d..13078127885b7c8233cbb1e20515fdbd60125df8 100644
--- a/Source/wtf/text/WTFString.h
+++ b/Source/wtf/text/WTFString.h
@@ -122,6 +122,15 @@
// Construct a string referencing an existing StringImpl.
String(StringImpl* impl) : m_impl(impl) { }
String(PassRefPtr<StringImpl> impl) : m_impl(impl) { }
+
+#if COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES)
+ // We have to declare the copy constructor and copy assignment operator as well, otherwise
+ // they'll be implicitly deleted by adding the move constructor and move assignment operator.
+ String(const String& other) : m_impl(other.m_impl) { }
+ String(String&& other) : m_impl(other.m_impl.release()) { }
+ String& operator=(const String& other) { m_impl = other.m_impl; return *this; }
+ String& operator=(String&& other) { m_impl = other.m_impl.release(); return *this; }
+#endif
// Inline the destructor.
ALWAYS_INLINE ~String() { }
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698