From ca7db372a6379580c0e81a7f3b123eb91eae95b8 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 5 Jun 2015 15:33:03 -0700 Subject: Merge to XFA: Add move constructor for FX string types. 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 | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/core/include/fxcrt/fx_string.h b/core/include/fxcrt/fx_string.h index efbe80accb..9903dad942 100644 --- a/core/include/fxcrt/fx_string.h +++ b/core/include/fxcrt/fx_string.h @@ -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) { } -- cgit v1.2.3