[subset] when closing glyphs in context lookups don't use a current glyph set if a lookup is already applied.
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index 1b3dc11..a9f6446 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -1250,10 +1250,11 @@
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 @@
}
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 @@
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);
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,623,62D,644,627,645,2E.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,623,62D,644,627,645,2E.ttf
deleted file mode 100644
index 5702ea4..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,623,62D,644,627,645,2E.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D,628.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D,628.ttf
deleted file mode 100644
index a444d9e..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D,628.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D.ttf
new file mode 100644
index 0000000..394d92c
--- /dev/null
+++ b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644,62D.ttf
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644.ttf
deleted file mode 100644
index 7404ea0..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.627,644.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.633,645,627,621,20,644,627.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.633,645,627,621,20,644,627.ttf
deleted file mode 100644
index 2d601cf..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.633,645,627,621,20,644,627.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.63A,64A,631.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.63A,64A,631.ttf
deleted file mode 100644
index 18bf3ad..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout-retain-gids.63A,64A,631.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,623,62D,644,627,645,2E.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,623,62D,644,627,645,2E.ttf
deleted file mode 100644
index 0d3ee11..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,623,62D,644,627,645,2E.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,62D,628.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,62D,628.ttf
deleted file mode 100644
index 34245f7..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644,62D,628.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644.ttf
deleted file mode 100644
index d5a0c61..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.627,644.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.633,645,627,621,20,644,627.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.633,645,627,621,20,644,627.ttf
deleted file mode 100644
index cd488e4..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.633,645,627,621,20,644,627.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.63A,64A,631.ttf b/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.63A,64A,631.ttf
deleted file mode 100644
index c563548..0000000
--- a/test/subset/data/expected/layout.notonastaliqurdu/NotoNastaliqUrdu-Bold.keep-layout.63A,64A,631.ttf
+++ /dev/null
Binary files differ
diff --git a/test/subset/data/tests/layout.notonastaliqurdu.tests b/test/subset/data/tests/layout.notonastaliqurdu.tests
index cd44796..a353a15 100644
--- a/test/subset/data/tests/layout.notonastaliqurdu.tests
+++ b/test/subset/data/tests/layout.notonastaliqurdu.tests
@@ -2,12 +2,7 @@
NotoNastaliqUrdu-Bold.ttf
PROFILES:
-keep-layout.txt
keep-layout-retain-gids.txt
SUBSETS:
-ال
-الأحلام.
-غير
-سماء لا
-الحب
+الح