summaryrefslogtreecommitdiff
path: root/core/src/fxcrt/fx_basic_wstring.cpp
diff options
context:
space:
mode:
authorOliver Chang <ochang@chromium.org>2015-12-08 16:12:25 -0800
committerOliver Chang <ochang@chromium.org>2015-12-08 16:12:25 -0800
commit8e7ed1a7759eb067063e3a52cf9efa80b8fc629b (patch)
tree3d066dbde09abec7b982258a2a3d42279811487e /core/src/fxcrt/fx_basic_wstring.cpp
parentb3ea5b41a3f472fe2b3ecf68129382b51ede6c3a (diff)
downloadpdfium-8e7ed1a7759eb067063e3a52cf9efa80b8fc629b.tar.xz
Revert "Merge to master: Take Jun's UTF16LE patches."chromium/2587chromium/2586
Broke chrome bindings. This reverts commit c3e4ae5fe5067723b58a2029a95c6411c92bed15. R=thestig@chromium.org, tsepez@chromium.org BUG=567485 Review URL: https://codereview.chromium.org/1511773002 .
Diffstat (limited to 'core/src/fxcrt/fx_basic_wstring.cpp')
-rw-r--r--core/src/fxcrt/fx_basic_wstring.cpp14
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,