| 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;
|
| + }
|
| + 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()
|
| {
|
|
|