Chromium Code Reviews| Index: core/src/fxcrt/fx_basic_wstring.cpp |
| diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp |
| index 742f249e37d5f523b3c3169e18bf7a8a3d4f41fb..9b27537ed91ac3780ada197c7fe3d3469270c333 100644 |
| --- a/core/src/fxcrt/fx_basic_wstring.cpp |
| +++ b/core/src/fxcrt/fx_basic_wstring.cpp |
| @@ -205,41 +205,16 @@ const CFX_WideString& CFX_WideString::operator+=(const CFX_WideStringC& string) |
| ConcatInPlace(string.GetLength(), string.GetPtr()); |
| return *this; |
| } |
| -bool operator==(const CFX_WideString& s1, FX_LPCWSTR s2) |
| +bool CFX_WideString::Equal(const wchar_t* ptr) const |
| { |
| - return s1.Equal(s2); |
| -} |
| -bool operator==(FX_LPCWSTR s1, const CFX_WideString& s2) |
| -{ |
| - return s2.Equal(s1); |
| -} |
| -bool operator==(const CFX_WideString& s1, const CFX_WideString& s2) |
| -{ |
| - return s1.Equal(s2); |
| -} |
| -bool operator==(const CFX_WideString& s1, const CFX_WideStringC& s2) |
| -{ |
| - return s1.Equal(s2); |
| -} |
| -bool operator==(const CFX_WideStringC& s1, const CFX_WideString& s2) |
| -{ |
| - return s2.Equal(s1); |
| -} |
| -bool operator != (const CFX_WideString& s1, FX_LPCWSTR s2) |
| -{ |
| - return !s1.Equal(s2); |
| -} |
| -bool operator!=(const CFX_WideString& s1, const CFX_WideString& s2) |
| -{ |
| - return !s1.Equal(s2); |
| -} |
| -bool operator!=(const CFX_WideString& s1, const CFX_WideStringC& s2) |
| -{ |
| - return !s1.Equal(s2); |
| -} |
| -bool operator!=(const CFX_WideStringC& s1, const CFX_WideString& s2) |
| -{ |
| - return !s2.Equal(s1); |
| + if (!m_pData) { |
| + return !ptr; |
|
dreamfly912
2015/05/13 09:48:24
Hi, consider this:
CFX_WideString left;
assert(lef
|
| + } |
| + if (!ptr) { |
| + return false; |
| + } |
| + return wcslen(ptr) == m_pData->m_nDataLength && |
| + wmemcmp(ptr, m_pData->m_String, m_pData->m_nDataLength) == 0; |
| } |
| bool CFX_WideString::Equal(const CFX_WideStringC& str) const |
| { |
| @@ -247,7 +222,20 @@ bool CFX_WideString::Equal(const CFX_WideStringC& str) const |
| return str.IsEmpty(); |
| } |
| return str.GetLength() == m_pData->m_nDataLength && |
| - FXSYS_memcmp32(str.GetPtr(), m_pData->m_String, m_pData->m_nDataLength * sizeof(FX_WCHAR)) == 0; |
| + wmemcmp(str.GetPtr(), m_pData->m_String, m_pData->m_nDataLength) == 0; |
| +} |
| +bool CFX_WideString::Equal(const CFX_WideString& other) const |
| +{ |
| + if (!m_pData) { |
| + return other.IsEmpty(); |
| + } |
| + if (!other.m_pData) { |
| + return false; |
| + } |
| + return other.m_pData->m_nDataLength == m_pData->m_nDataLength && |
| + wmemcmp(other.m_pData->m_String, |
| + m_pData->m_String, |
| + m_pData->m_nDataLength) == 0; |
| } |
| void CFX_WideString::Empty() |
| { |