Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh
index 39a8bba..9b17225 100644
--- a/src/hb-ot-layout-common.hh
+++ b/src/hb-ot-layout-common.hh
@@ -1222,7 +1222,7 @@
   bool subset (hb_subset_context_t *c) const
   {
     TRACE_SUBSET (this);
-    const hb_set_t &glyphset = *c->plan->glyphset;
+    const hb_set_t &glyphset = *c->plan->glyphset ();
     const hb_map_t &glyph_map = *c->plan->glyph_map;
     hb_vector_t<GlyphID> glyphs;
     hb_vector_t<HBUINT16> klasses;
@@ -1369,7 +1369,7 @@
   bool subset (hb_subset_context_t *c) const
   {
     TRACE_SUBSET (this);
-    const hb_set_t &glyphset = *c->plan->glyphset;
+    const hb_set_t &glyphset = *c->plan->glyphset ();
     const hb_map_t &glyph_map = *c->plan->glyph_map;
     hb_vector_t<GlyphID> glyphs;
     hb_vector_t<HBUINT16> klasses;
diff --git a/src/hb-ot-vorg-table.hh b/src/hb-ot-vorg-table.hh
index 0202fcc..39073db 100644
--- a/src/hb-ot-vorg-table.hh
+++ b/src/hb-ot-vorg-table.hh
@@ -110,21 +110,29 @@
     /* count the number of glyphs to be included in the subset table */
     hb_vector_t<VertOriginMetric> subset_metrics;
     subset_metrics.init ();
-    unsigned int glyph = 0;
+
+
+    hb_codepoint_t old_glyph = HB_SET_VALUE_INVALID;
     unsigned int i = 0;
-    while ((glyph < plan->glyphs.length) && (i < vertYOrigins.len))
+    while (i < vertYOrigins.len
+           && plan->glyphset ()->next (&old_glyph))
     {
-      if (plan->glyphs[glyph] > vertYOrigins[i].glyph)
-        i++;
-      else if (plan->glyphs[glyph] < vertYOrigins[i].glyph)
-        glyph++;
-      else
+      while (old_glyph > vertYOrigins[i].glyph)
       {
-        VertOriginMetric *metrics = subset_metrics.push ();
-        metrics->glyph.set (glyph);
-        metrics->vertOriginY.set (vertYOrigins[i].vertOriginY);
-        glyph++;
         i++;
+        if (i >= vertYOrigins.len)
+          break;
+      }
+
+      if (old_glyph == vertYOrigins[i].glyph)
+      {
+        hb_codepoint_t new_glyph;
+        if (plan->new_gid_for_old_gid (old_glyph, &new_glyph))
+        {
+          VertOriginMetric *metrics = subset_metrics.push ();
+          metrics->glyph.set (new_glyph);
+          metrics->vertOriginY.set (vertYOrigins[i].vertOriginY);
+        }
       }
     }