From: Behdad Esfahbod Date: Thu, 13 Dec 2018 23:32:04 +0000 (-0500) Subject: [subset] Fix ClassDefFormat1 subsetting X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ee6128902333716dd8d8df6e38a8d1ebacb0a46;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [subset] Fix ClassDefFormat1 subsetting --- diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index c95eca7..39f141f 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -1241,13 +1241,16 @@ struct ClassDefFormat1 inline bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); + const hb_set_t &glyphset = *c->plan->glyphset; const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t glyphs; - hb_codepoint_t first_glyph = startGlyph; - unsigned int count = classValue.len; - glyphs.resize (count); - for (unsigned i = 0; i < count; i++) - glyphs[i].set (glyph_map[first_glyph + i]); + hb_codepoint_t start = startGlyph; + hb_codepoint_t end = start + classValue.len; + for (hb_codepoint_t g = start; g < end; g++) + { + if (!glyphset.has (g)) continue; + glyphs.push()->set (glyph_map[g]); + } c->serializer->err (glyphs.in_error ()); Supplier glyphs_supplier (glyphs);