diff options
author | Oliver Chang <ochang@chromium.org> | 2015-12-09 12:44:33 -0800 |
---|---|---|
committer | Oliver Chang <ochang@chromium.org> | 2015-12-09 12:44:33 -0800 |
commit | 35e68a5275f2d1e6819c773f0f367e225a0d5961 (patch) | |
tree | b20af57f5be5d7ef5d8be2ebf44e92ad94ab88a9 /core/src/fxcrt/fx_basic_wstring.cpp | |
parent | df685030b73074e46d7eb789e13135c52775091f (diff) | |
download | pdfium-35e68a5275f2d1e6819c773f0f367e225a0d5961.tar.xz |
XFA: Revert UTF16LE_Encode changes
Revert "Fix embedder test failures introduced by commit c70b19aad245"
This reverts commit 8d89e65897d8b6cf7899e7a82d9d381c3ad327cb.
Revert "Fix invalid buffer length set in CFX_WideString::UTF16LE_Encode()"
This reverts commit c70b19aad245fb1ed39bf8c264d991555f4c5a58.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1516643002 .
Diffstat (limited to 'core/src/fxcrt/fx_basic_wstring.cpp')
-rw-r--r-- | core/src/fxcrt/fx_basic_wstring.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp index 7ea7e8e112..220ffbd57d 100644 --- a/core/src/fxcrt/fx_basic_wstring.cpp +++ b/core/src/fxcrt/fx_basic_wstring.cpp @@ -287,17 +287,19 @@ CFX_ByteString CFX_WideString::UTF8Encode() const { return FX_UTF8Encode(*this); } CFX_ByteString CFX_WideString::UTF16LE_Encode() const { - CFX_ByteString result; - if (!m_pData) { - return result; + if (m_pData == NULL) { + return CFX_ByteString(FX_BSTRC("\0\0")); } int len = m_pData->m_nDataLength; - FX_CHAR* buffer = result.GetBuffer(len * 2); - for (int i = 0; i < len; ++i) { + CFX_ByteString result; + FX_CHAR* buffer = result.GetBuffer(len * 2 + 2); + for (int i = 0; i < len; i++) { buffer[i * 2] = m_pData->m_String[i] & 0xff; buffer[i * 2 + 1] = m_pData->m_String[i] >> 8; } - result.ReleaseBuffer(len * 2); + buffer[len * 2] = 0; + buffer[len * 2 + 1] = 0; + result.ReleaseBuffer(len * 2 + 2); return result; } void CFX_WideString::ConvertFrom(const CFX_ByteString& str, |