[subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc
index cc298b4..5702d01 100644
--- a/src/hb-subset-plan.cc
+++ b/src/hb-subset-plan.cc
@@ -156,7 +156,8 @@
}
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<hb_codepoint_t> &glyphs,
hb_map_t *glyph_map, /* OUT */
hb_map_t *reverse_glyph_map, /* OUT */
@@ -180,7 +181,7 @@
}
else
{
- *num_glyphs = glyphs[glyphs.length - 1] + 1;
+ *num_glyphs = face->get_num_glyphs ();
}
}
@@ -217,7 +218,8 @@
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,