[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:
-ال
-الأحلام.
-غير
-سماء لا
-الحب
+الح