Add invalid glyph index protection

This commit is contained in:
piepie62 2020-04-23 22:12:31 -04:00 committed by fincs
parent 175dd62a90
commit 1ca796b3a3

View File

@ -48,7 +48,7 @@ int fontGlyphIndexFromCodePoint(CFNT_s* font, u32 codePoint)
font = g_sharedFont;
if (!font)
return -1;
int ret = font->finf.alterCharIndex;
int ret = 0xFFFF;
if (codePoint < 0x10000)
{
for (CMAP_s* cmap = font->finf.cmap; cmap; cmap = cmap->next)
@ -79,6 +79,13 @@ int fontGlyphIndexFromCodePoint(CFNT_s* font, u32 codePoint)
}
}
}
if (ret == 0xFFFF) // Bogus CMAP entry. Probably exist to save space by using TABLE mappings?
{
if (font->finf.alterCharIndex == 0xFFFF)
return -1;
else
return font->finf.alterCharIndex;
}
return ret;
}