1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:37:46 +00:00

LibPDF: Fix small bug from #21452

I implemented CFF charset format 2 in 6f783929dd with the note
"I haven't seen this being used in the wild". Now that I have
seen it (0000658.pdf), I can say that this has never worked,
despite me claiming "it's easy to implement".

But now it works!
This commit is contained in:
Nico Weber 2024-02-08 07:50:02 -05:00 committed by Sam Atkins
parent 93ee01041f
commit 32f601f9a4

View file

@ -763,7 +763,7 @@ PDFErrorOr<Vector<DeprecatedFlyString>> CFF::parse_charset(Reader&& reader, size
while (names.size() < glyph_count - 1) { while (names.size() < glyph_count - 1) {
// CFF spec, "Table 21 Range2 Format" // CFF spec, "Table 21 Range2 Format"
auto first_sid = TRY(reader.try_read<BigEndian<SID>>()); auto first_sid = TRY(reader.try_read<BigEndian<SID>>());
int left = TRY(reader.try_read<Card16>()); int left = TRY(reader.try_read<BigEndian<Card16>>());
for (SID sid = first_sid; left >= 0 && names.size() < glyph_count - 1; left--, sid++) for (SID sid = first_sid; left >= 0 && names.size() < glyph_count - 1; left--, sid++)
TRY(names.try_append(resolve_sid(sid, strings))); TRY(names.try_append(resolve_sid(sid, strings)));
} }