mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-20 17:59:08 +02:00
UTF16_Type::next() assumed every surrogate came in a valid pair, so a lone high surrogate swallowed the unit after it, and one right before the terminator stepped over it and kept reading. It now returns INVALID and consumes only the bad unit, which sceCccDecodeUTF16() already checks for. ShiftJIS::next() returned 0xA0 and 0xFD-0xFF as single-byte characters. Like 0x80, which it already rejected, they encode nothing (the PSP's JIS to UCS table in pspautotests/tests/ccc/jis2ucs.bin has no entry for any of them), so they're INVALID too. Only sceCcc uses these decoders.