| Index: core/fxcrt/fx_basic_wstring.cpp
|
| diff --git a/core/fxcrt/fx_basic_wstring.cpp b/core/fxcrt/fx_basic_wstring.cpp
|
| index 95b761bd09e67a55b38ae5216ab5e555b8872a96..8282bd501453013802f26ae0e121dcb5bb56527a 100644
|
| --- a/core/fxcrt/fx_basic_wstring.cpp
|
| +++ b/core/fxcrt/fx_basic_wstring.cpp
|
| @@ -640,13 +640,12 @@ FX_STRSIZE CFX_WideString::Replace(const FX_WCHAR* lpszOld,
|
| FX_STRSIZE nCount = 0;
|
| FX_WCHAR* lpszStart = m_pData->m_String;
|
| FX_WCHAR* lpszEnd = m_pData->m_String + m_pData->m_nDataLength;
|
| - FX_WCHAR* lpszTarget;
|
| - {
|
| - while ((lpszTarget = (FX_WCHAR*)FXSYS_wcsstr(lpszStart, lpszOld)) &&
|
| - lpszStart < lpszEnd) {
|
| - nCount++;
|
| - lpszStart = lpszTarget + nSourceLen;
|
| - }
|
| + while (lpszStart < lpszEnd) {
|
| + FX_WCHAR* lpszTarget = FXSYS_wcsstr(lpszStart, lpszOld);
|
| + if (!lpszTarget)
|
| + break;
|
| + nCount++;
|
| + lpszStart = lpszTarget + nSourceLen;
|
| }
|
| if (nCount > 0) {
|
| CopyBeforeWrite();
|
| @@ -667,9 +666,10 @@ FX_STRSIZE CFX_WideString::Replace(const FX_WCHAR* lpszOld,
|
| lpszStart = m_pData->m_String;
|
| lpszEnd = m_pData->m_String + std::max(m_pData->m_nDataLength, nNewLength);
|
| {
|
| - while ((lpszTarget = (FX_WCHAR*)FXSYS_wcsstr(lpszStart, lpszOld)) !=
|
| - NULL &&
|
| - lpszStart < lpszEnd) {
|
| + while (lpszStart < lpszEnd) {
|
| + FX_WCHAR* lpszTarget = FXSYS_wcsstr(lpszStart, lpszOld);
|
| + if (!lpszTarget)
|
| + break;
|
| FX_STRSIZE nBalance =
|
| nOldLength -
|
| (FX_STRSIZE)(lpszTarget - m_pData->m_String + nSourceLen);
|
|
|