From ff0b85cf571cb94dbbc5091179f7874926a88dbe Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 1 Jun 2023 20:30:56 -0600 Subject: [PATCH] [subset/glyf] Empty .notdef only if old-gid was also 0 Otherwise it wasn't a .notdef, even if new-gid is 0. --- src/OT/glyf/glyf.hh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/OT/glyf/glyf.hh b/src/OT/glyf/glyf.hh index e7ca7e78a..1a12d2bac 100644 --- a/src/OT/glyf/glyf.hh +++ b/src/OT/glyf/glyf.hh @@ -436,11 +436,12 @@ glyf::_populate_subset_glyphs (const hb_subset_plan_t *plan, for (auto p : plan->glyph_map->iter ()) { - unsigned new_gid = p.second; + hb_codepoint_t old_gid = p.first; + hb_codepoint_t new_gid = p.second; glyf_impl::SubsetGlyph& subset_glyph = glyphs.arrayZ[new_gid]; - subset_glyph.old_gid = p.first; + subset_glyph.old_gid = old_gid; - if (unlikely (new_gid == 0 && + if (unlikely (old_gid == 0 && new_gid == 0 && !(plan->flags & HB_SUBSET_FLAGS_NOTDEF_OUTLINE)) && !plan->normalized_coords) subset_glyph.source_glyph = glyf_impl::Glyph ();