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