diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-08-07 23:22:24 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-07 23:22:24 +0000 |
commit | e4d2cffd31a1f705f04d11223444455aa35923a6 (patch) | |
tree | c894e92f58b2b3c1a71ca18d7c120013e344d65d /core/fxcrt | |
parent | 3bee9c60f013b8b7e99c39ee35699d132b330334 (diff) | |
download | pdfium-e4d2cffd31a1f705f04d11223444455aa35923a6.tar.xz |
Remove unused codepage code from GetByteString().
It is only called ever called from one place with 0 (FX_CODEPAGE_DefANSI),
with more complicated usage being funneled directly into FXSYS_ code.
Next, fold it into ByteString::FromUnicode().
Change-Id: I85aa0dd3a4ca8cddcff22533e0a284ff3f5535ee
Reviewed-on: https://pdfium-review.googlesource.com/39670
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fxcrt')
-rw-r--r-- | core/fxcrt/bytestring.cpp | 57 |
1 files changed, 17 insertions, 40 deletions
diff --git a/core/fxcrt/bytestring.cpp b/core/fxcrt/bytestring.cpp index 984acf9c69..4d55c98912 100644 --- a/core/fxcrt/bytestring.cpp +++ b/core/fxcrt/bytestring.cpp @@ -55,44 +55,6 @@ const char* FX_strstr(const char* haystack, return nullptr; } -#ifndef NDEBUG -bool IsValidCodePage(uint16_t codepage) { - switch (codepage) { - case FX_CODEPAGE_DefANSI: - case FX_CODEPAGE_ShiftJIS: - case FX_CODEPAGE_ChineseSimplified: - case FX_CODEPAGE_Hangul: - case FX_CODEPAGE_ChineseTraditional: - return true; - default: - return false; - } -} -#endif - -ByteString GetByteString(uint16_t codepage, const WideStringView& wstr) { -#ifndef NDEBUG - ASSERT(IsValidCodePage(codepage)); -#endif - - int src_len = wstr.GetLength(); - int dest_len = - FXSYS_WideCharToMultiByte(codepage, 0, wstr.unterminated_c_str(), src_len, - nullptr, 0, nullptr, nullptr); - if (!dest_len) - return ByteString(); - - ByteString bstr; - { - // Span's lifetime must end before ReleaseBuffer() below. - pdfium::span<char> dest_buf = bstr.GetBuffer(dest_len); - FXSYS_WideCharToMultiByte(codepage, 0, wstr.unterminated_c_str(), src_len, - dest_buf.data(), dest_len, nullptr, nullptr); - } - bstr.ReleaseBuffer(dest_len); - return bstr; -} - } // namespace namespace fxcrt { @@ -715,8 +677,23 @@ WideString ByteString::UTF8Decode() const { } // static -ByteString ByteString::FromUnicode(const WideString& str) { - return GetByteString(0, str.AsStringView()); +ByteString ByteString::FromUnicode(const WideString& wstr) { + int src_len = wstr.GetLength(); + int dest_len = + FXSYS_WideCharToMultiByte(FX_CODEPAGE_DefANSI, 0, wstr.c_str(), src_len, + nullptr, 0, nullptr, nullptr); + if (!dest_len) + return ByteString(); + + ByteString bstr; + { + // Span's lifetime must end before ReleaseBuffer() below. + pdfium::span<char> dest_buf = bstr.GetBuffer(dest_len); + FXSYS_WideCharToMultiByte(FX_CODEPAGE_DefANSI, 0, wstr.c_str(), src_len, + dest_buf.data(), dest_len, nullptr, nullptr); + } + bstr.ReleaseBuffer(dest_len); + return bstr; } int ByteString::Compare(const ByteStringView& str) const { |