diff options
author | Bruce Dawson <brucedawson@google.com> | 2014-12-23 12:21:02 -0800 |
---|---|---|
committer | Bruce Dawson <brucedawson@google.com> | 2014-12-23 12:21:02 -0800 |
commit | 0a476d22c89eb99d36dfd6c9955dd12d1513a870 (patch) | |
tree | 6f66fd7da1565546bd1b0d0447d827463c1d5988 /core/include/fxcrt/fx_string.h | |
parent | 1be4117d0ea336203680c64d9d0a1ae1d5a6cf61 (diff) | |
download | pdfium-0a476d22c89eb99d36dfd6c9955dd12d1513a870.tar.xz |
XFA: merge patch from CL 733693003, getting rid of more casts
Getting rid of more (FX_LPCWSTR) casts and fixing two bugs revealed by this.
Since casts to FX_LPCWSTR have been shown to hide bugs I tried removing
more of them, targeting those places where a cast was used to force a
conversion from CFX_WideString to FX_LPCWSTR, replacing these casts with
calls to the newly added .c_str() function. This revealed two places
where the cast was hiding a bug -- where ->c_str() was required instead!
This removes ~33 FX_LPCWSTR casts and there are ~31 left, many of which
will go away in some future change.
Also includes this change:
Removing unnecessary casts from wchar_t* to wchar_t*, by various names.
Original patch from Bruce Dawson(brucedawson@chromium.org)
TBR=bo_xu@foxitsoftware.com, tsepez@chromium.org
Review URL: https://codereview.chromium.org/811593007
Diffstat (limited to 'core/include/fxcrt/fx_string.h')
-rw-r--r-- | core/include/fxcrt/fx_string.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/core/include/fxcrt/fx_string.h b/core/include/fxcrt/fx_string.h index 364c510f73..47e8ecdf1e 100644 --- a/core/include/fxcrt/fx_string.h +++ b/core/include/fxcrt/fx_string.h @@ -640,9 +640,16 @@ public: static FX_STRSIZE WStringLength(const unsigned short* str); + // Explicit conversion to raw string + FX_LPCWSTR c_str() const + { + return m_pData ? m_pData->m_String : L""; + } + + // Implicit conversion to C-style wide string -- deprecated operator FX_LPCWSTR() const { - return m_pData ? m_pData->m_String : (FX_WCHAR*)L""; + return m_pData ? m_pData->m_String : L""; } void Empty(); @@ -762,12 +769,12 @@ protected: }; inline CFX_WideStringC::CFX_WideStringC(const CFX_WideString& src) { - m_Ptr = (FX_LPCWSTR)src; + m_Ptr = src.c_str(); m_Length = src.GetLength(); } inline CFX_WideStringC& CFX_WideStringC::operator = (const CFX_WideString& src) { - m_Ptr = (FX_LPCWSTR)src; + m_Ptr = src.c_str(); m_Length = src.GetLength(); return *this; } @@ -841,6 +848,6 @@ inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr) } inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr) { - return FX_UTF8Encode((FX_LPCWSTR)wsStr, wsStr.GetLength()); + return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()); } #endif |