retain FDSelect & FDArray with --retain-gids so in sync with fonttools behavior
diff --git a/src/hb-subset-cff-common.cc b/src/hb-subset-cff-common.cc index 46821fe..f29937a 100644 --- a/src/hb-subset-cff-common.cc +++ b/src/hb-subset-cff-common.cc
@@ -66,21 +66,17 @@ hb_set_t *set = hb_set_create (); if (set == &Null (hb_set_t)) return false; - hb_codepoint_t prev_fd = 0; + hb_codepoint_t prev_fd = CFF_UNDEF_CODE; for (hb_codepoint_t i = 0; i < subset_num_glyphs; i++) { hb_codepoint_t glyph; hb_codepoint_t fd; if (!plan->old_gid_for_new_gid (i, &glyph)) { - /* for a missing glyph, use the same fd as the previous - * as an attempt to minimize the number of ranges */ - fd = prev_fd; + /* fonttools retains FDSelect & font dicts for missing glyphs. do the same */ + glyph = i; } - else - { - fd = src.get_fd (glyph); - } + fd = src.get_fd (glyph); set->add (fd); if (fd != prev_fd)