Merge to XFA: Add move constructor for FX string types.
authorTom Sepez <tsepez@chromium.org>
Fri, 5 Jun 2015 22:33:03 +0000 (15:33 -0700)
committerTom Sepez <tsepez@chromium.org>
Fri, 5 Jun 2015 22:33:03 +0000 (15:33 -0700)
Original Review URL: https://codereview.chromium.org/1162203007

R=thestig@chromium.org
TBR=thestig@chromium.org

Review URL: https://codereview.chromium.org/1154023005

core/include/fxcrt/fx_string.h

index efbe80a..9903dad 100644 (file)
@@ -178,20 +178,22 @@ class CFX_ByteString
 public:
     typedef FX_CHAR value_type;
 
-    CFX_ByteString()
-    {
-        m_pData = NULL;
-    }
+    CFX_ByteString() : m_pData(nullptr) { }
 
+    // Copy constructor.
     CFX_ByteString(const CFX_ByteString& str);
 
-    CFX_ByteString(char ch);
+    // Move constructor.
+    inline CFX_ByteString(CFX_ByteString&& other) {
+        this->m_pData = other.m_pData;
+        other.m_pData = nullptr;
+    }
 
+    CFX_ByteString(char ch);
     CFX_ByteString(FX_LPCSTR ptr)
             : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) { }
 
     CFX_ByteString(FX_LPCSTR ptr, FX_STRSIZE len);
-
     CFX_ByteString(FX_LPCBYTE ptr, FX_STRSIZE len);
 
     CFX_ByteString(FX_BSTR bstrc);
@@ -623,13 +625,17 @@ class CFX_WideString
 public:
     typedef FX_WCHAR value_type;
 
-    CFX_WideString()
-    {
-        m_pData = NULL;
-    }
+    CFX_WideString() : m_pData(nullptr) { }
 
+    // Copy constructor.
     CFX_WideString(const CFX_WideString& str);
 
+    // Move constructor.
+    inline CFX_WideString(CFX_WideString&& other) {
+        this->m_pData = other.m_pData;
+        other.m_pData = nullptr;
+    }
+
     CFX_WideString(FX_LPCWSTR ptr)
             : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) { }