| 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 192579fe547e1dda087542b83f4a1a4a59135203..794630b9e5e488b0f3b5c70e99b49feaf36c4472 100644
|
| --- a/core/src/fxcrt/fx_basic_wstring.cpp
|
| +++ b/core/src/fxcrt/fx_basic_wstring.cpp
|
| @@ -398,15 +398,10 @@ CFX_WideString CFX_WideString::FromLocal(const char* str, FX_STRSIZE len)
|
| }
|
| CFX_WideString CFX_WideString::FromUTF8(const char* str, FX_STRSIZE len)
|
| {
|
| - if (!str) {
|
| + if (!str || 0 == len) {
|
| return CFX_WideString();
|
| }
|
| - if (len < 0) {
|
| - len = 0;
|
| - while (str[len]) {
|
| - len ++;
|
| - }
|
| - }
|
| +
|
| CFX_UTF8Decoder decoder;
|
| for (FX_STRSIZE i = 0; i < len; i ++) {
|
| decoder.Input(str[i]);
|
| @@ -415,15 +410,10 @@ CFX_WideString CFX_WideString::FromUTF8(const char* str, FX_STRSIZE len)
|
| }
|
| CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr, FX_STRSIZE wlen)
|
| {
|
| - if (!wstr || !wlen) {
|
| + if (!wstr || 0 == wlen) {
|
| return CFX_WideString();
|
| }
|
| - if (wlen < 0) {
|
| - wlen = 0;
|
| - while (wstr[wlen]) {
|
| - wlen ++;
|
| - }
|
| - }
|
| +
|
| CFX_WideString result;
|
| FX_WCHAR* buf = result.GetBuffer(wlen);
|
| for (int i = 0; i < wlen; i ++) {
|
| @@ -432,6 +422,16 @@ CFX_WideString CFX_WideString::FromUTF16LE(const unsigned short* wstr, FX_STRSIZ
|
| result.ReleaseBuffer(wlen);
|
| return result;
|
| }
|
| +FX_STRSIZE CFX_WideString::WStringLength(const unsigned short* str)
|
| +{
|
| + FX_STRSIZE len = 0;
|
| + if (str)
|
| + while (str[len]) len++;
|
| + return len;
|
| +}
|
| +
|
| +
|
| +
|
| void CFX_WideString::AllocCopy(CFX_WideString& dest, FX_STRSIZE nCopyLen, FX_STRSIZE nCopyIndex) const
|
| {
|
| // |FX_STRSIZE| is currently typedef'd as in |int|. TODO(palmer): It
|
|
|