From: Behdad Esfahbod Date: Wed, 12 Dec 2018 03:53:58 +0000 (-0500) Subject: [subset] Map glyphs during SingleSubst subsetting X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1aea86944605e7e18acfd2c0a77ba60e62239274;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [subset] Map glyphs during SingleSubst subsetting Ha! --- diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 73a852f..04db198 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -110,6 +110,7 @@ struct SingleSubstFormat1 inline bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); + const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t from; hb_vector_t to; hb_codepoint_t delta = deltaGlyphID; @@ -117,8 +118,8 @@ struct SingleSubstFormat1 { if (!c->plan->glyphset->has (iter.get_glyph ())) continue; - from.push ()->set (iter.get_glyph ()); - to.push ()->set ((iter.get_glyph () + delta) & 0xFFFF); + from.push ()->set (glyph_map[iter.get_glyph ()]); + to.push ()->set (glyph_map[(iter.get_glyph () + delta) & 0xFFFF]); } c->serializer->err (from.in_error () || to.in_error ()); @@ -216,14 +217,15 @@ struct SingleSubstFormat2 inline bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); + const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t from; hb_vector_t to; for (Coverage::Iter iter (this+coverage); iter.more (); iter.next ()) { if (!c->plan->glyphset->has (iter.get_glyph ())) continue; - from.push ()->set (iter.get_glyph ()); - to.push ()->set (substitute[iter.get_coverage ()]); + from.push ()->set (glyph_map[iter.get_glyph ()]); + to.push ()->set (glyph_map[substitute[iter.get_coverage ()]]); } c->serializer->err (from.in_error () || to.in_error ());