summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-06-05 15:33:03 -0700
committerTom Sepez <tsepez@chromium.org>2015-06-05 15:33:03 -0700
commitca7db372a6379580c0e81a7f3b123eb91eae95b8 (patch)
tree90651450a2e4cae8a8cc97af29a54eded6cf5bb1
parent4c0e2751d313dcf0dcaa73b3833db16a73150477 (diff)
downloadpdfium-ca7db372a6379580c0e81a7f3b123eb91eae95b8.tar.xz
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
-rw-r--r--core/include/fxcrt/fx_string.h26
1 files 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) { }