Avoid two-arg ByteStringView in CPDF_CIDFont [win only]
Bug: 42271176
Change-Id: I9a9acdbaa71b302d7feb090e5aa8c361ac042088
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/120590
Reviewed-by: Thomas Sepez <tsepez@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
index c69cef7..da6d0af 100644
--- a/core/fpdfapi/font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -326,16 +326,18 @@
return m_pCID2UnicodeMap->UnicodeFromCID(CIDFromCharCode(charcode));
#if BUILDFLAG(IS_WIN)
- wchar_t unicode;
- int charsize = 1;
- if (charcode > 255) {
- charcode = (charcode % 256) * 256 + (charcode / 256);
- charsize = 2;
+ uint8_t sequence[2] = {};
+ const int charsize = charcode < 256 ? 1 : 2;
+ if (charsize == 1) {
+ sequence[0] = charcode;
+ } else {
+ sequence[0] = charcode / 256;
+ sequence[1] = charcode % 256;
}
+ wchar_t unicode;
size_t ret = FX_MultiByteToWideChar(
kCharsetCodePages[static_cast<size_t>(m_pCMap->GetCoding())],
- UNSAFE_TODO(ByteStringView::Create(
- reinterpret_cast<const char*>(&charcode), charsize)),
+ ByteStringView(pdfium::make_span(sequence).first(charsize)),
pdfium::span_from_ref(unicode));
return ret == 1 ? unicode : 0;
#else