[subset] Don't add invalid gids (-1) to the glyphset when loading glyph map from the accelerator.

This commit is contained in:
Garret Rieger 2023-03-15 02:39:57 +00:00 committed by Behdad Esfahbod
parent 09a2662361
commit a84cae424d
7 changed files with 18 additions and 4 deletions

View File

@ -55,7 +55,7 @@ struct PairPosFormat1_3
if (pairSet.len > glyphs->get_population () * hb_bit_storage ((unsigned) pairSet.len) / 4)
{
for (hb_codepoint_t g = HB_SET_VALUE_INVALID; glyphs->next (&g);)
for (hb_codepoint_t g : glyphs->iter())
{
unsigned i = cov.get_coverage (g);
if ((this+pairSet[i]).intersects (glyphs, valueFormat))

View File

@ -556,9 +556,12 @@ _populate_unicodes_to_retain (const hb_set_t *unicodes,
if (plan->codepoint_to_glyph->has (cp))
continue;
hb_codepoint_t gid = (*unicode_glyphid_map)[cp];
plan->codepoint_to_glyph->set (cp, gid);
plan->unicode_to_new_gid_list.push (hb_pair (cp, gid));
hb_codepoint_t *gid;
if (!unicode_glyphid_map->has(cp, &gid))
continue;
plan->codepoint_to_glyph->set (cp, *gid);
plan->unicode_to_new_gid_list.push (hb_pair (cp, *gid));
}
plan->unicode_to_new_gid_list.qsort ();
}

View File

@ -10,6 +10,7 @@ EXTRA_DIST += \
$(DISABLED_TESTS) \
expected/32bit_var_store \
expected/basics \
expected/preprocess \
expected/full-font \
expected/glyf_bug_3131 \
expected/cff-full-font \

View File

@ -1,6 +1,7 @@
TESTS = \
tests/32bit_var_store.tests \
tests/basics.tests \
tests/preprocess.tests \
tests/cbdt.tests \
tests/cff-full-font.tests \
tests/cff-japanese.tests \

View File

@ -0,0 +1,8 @@
FONTS:
Roboto-Regular.ttf
PROFILES:
gids.txt
SUBSETS:
abcベ

View File

@ -1,5 +1,6 @@
tests = [
'basics',
'preprocess',
'full-font',
'cff-full-font',
'japanese',