[subset] when closing glyphs in context lookups don't use a current glyph set if a lookup is already applied.

pull/2926/head
Garret Rieger 4 years ago
parent 2773d05740
commit b10741ca7f
  1. 12
      src/hb-ot-layout-gsubgpos.hh
  2. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,623,62D,644,627,645,2E.ttf
  3. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D,628.ttf
  4. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D.ttf
  5. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644.ttf
  6. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.633,645,627,621,20,644,627.ttf
  7. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.63A,64A,631.ttf
  8. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,623,62D,644,627,645,2E.ttf
  9. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,62D,628.ttf
  10. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644.ttf
  11. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.633,645,627,621,20,644,627.ttf
  12. BIN
      test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.63A,64A,631.ttf
  13. 7
      test/subset/data/tests/layout.notonastaliqurdu.tests

@ -1250,10 +1250,11 @@ static void context_closure_recurse_lookups (hb_closure_context_t *c,
unsigned seqIndex = lookupRecord[i].sequenceIndex;
if (seqIndex >= inputCount) continue;
hb_set_t *pos_glyphs = hb_set_create ();
hb_set_t *pos_glyphs = nullptr;
if (hb_set_is_empty (covered_seq_indicies) || !hb_set_has (covered_seq_indicies, seqIndex))
{
pos_glyphs = hb_set_create ();
if (seqIndex == 0)
{
switch (context_format) {
@ -1283,7 +1284,8 @@ static void context_closure_recurse_lookups (hb_closure_context_t *c,
}
hb_set_add (covered_seq_indicies, seqIndex);
c->push_cur_active_glyphs (pos_glyphs);
if (pos_glyphs)
c->push_cur_active_glyphs (pos_glyphs);
unsigned endIndex = inputCount;
if (context_format == ContextFormat::CoverageBasedContext)
@ -1291,8 +1293,10 @@ static void context_closure_recurse_lookups (hb_closure_context_t *c,
c->recurse (lookupRecord[i].lookupListIndex, covered_seq_indicies, seqIndex, endIndex);
c->pop_cur_done_glyphs ();
hb_set_destroy (pos_glyphs);
if (pos_glyphs) {
c->pop_cur_done_glyphs ();
hb_set_destroy (pos_glyphs);
}
}
hb_set_destroy (covered_seq_indicies);

@ -2,12 +2,7 @@ FONTS:
NotoNastaliqUrdu-Bold.ttf
PROFILES:
keep-layout.txt
keep-layout-retain-gids.txt
SUBSETS:
ال
الأحلام.
غير
سماء لا
الحب
الح

Loading…
Cancel
Save