From 198859bb3702e45cb271dd51b7231f10d01576be Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Mon, 28 Jan 2019 18:10:56 -0800 Subject: [PATCH] [subset] For retain gids don't truncate glyphs past the highest requested subset glyph. --- src/hb-subset-plan.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index cc298b4d..5702d017 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -156,7 +156,8 @@ _populate_gids_to_retain (hb_face_t *face, } static void -_create_old_gid_to_new_gid_map (bool retain_gids, +_create_old_gid_to_new_gid_map (const hb_face_t *face, + bool retain_gids, const hb_vector_t &glyphs, hb_map_t *glyph_map, /* OUT */ hb_map_t *reverse_glyph_map, /* OUT */ @@ -180,7 +181,7 @@ _create_old_gid_to_new_gid_map (bool retain_gids, } else { - *num_glyphs = glyphs[glyphs.length - 1] + 1; + *num_glyphs = face->get_num_glyphs (); } } @@ -217,7 +218,8 @@ hb_subset_plan_create (hb_face_t *face, plan->codepoint_to_glyph, &plan->glyphs_deprecated); - _create_old_gid_to_new_gid_map (input->retain_gids, + _create_old_gid_to_new_gid_map (face, + input->retain_gids, plan->glyphs_deprecated, plan->glyph_map, plan->reverse_glyph_map, -- GitLab