summaryrefslogtreecommitdiff
path: root/core/include/fxcrt/fx_string.h
diff options
context:
space:
mode:
authorBruce Dawson <brucedawson@google.com>2014-12-23 12:21:02 -0800
committerBruce Dawson <brucedawson@google.com>2014-12-23 12:21:02 -0800
commit0a476d22c89eb99d36dfd6c9955dd12d1513a870 (patch)
tree6f66fd7da1565546bd1b0d0447d827463c1d5988 /core/include/fxcrt/fx_string.h
parent1be4117d0ea336203680c64d9d0a1ae1d5a6cf61 (diff)
downloadpdfium-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.h15
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