Revert "[gsubgpos] Keep another digest in the applicable_t"

This reverts commit fd79c7cecdf68fe4626943f29bd5edf1e603d2b2.
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index bfd6963..f46fb4e 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -1002,7 +1002,6 @@
     hb_cache_func_t cache_func;
 #endif
     hb_set_digest_t digest;
-    hb_set_digest_t digest_rest;
   };
 
 #ifndef HB_NO_OT_LAYOUT_LOOKUP_CACHE
@@ -4340,12 +4339,6 @@
     thiz->digest.init ();
     for (auto& subtable : hb_iter (thiz->subtables, count))
       thiz->digest.add (subtable.digest);
-    if (count)
-      for (unsigned int i = count - 1; i; i--)
-      {
-	thiz->subtables[i - 1].digest_rest.add (thiz->subtables[i].digest);
-	thiz->subtables[i - 1].digest_rest.add (thiz->subtables[i].digest_rest);
-      }
 
 #ifndef HB_NO_OT_LAYOUT_LOOKUP_CACHE
     thiz->cache_user_idx = c_accelerate_subtables.cache_user_idx;
@@ -4365,28 +4358,23 @@
 #endif
   bool apply (hb_ot_apply_context_t *c, unsigned subtables_count, bool use_cache) const
   {
-    hb_codepoint_t g = c->buffer->cur().codepoint;
 #ifndef HB_NO_OT_LAYOUT_LOOKUP_CACHE
     if (use_cache)
     {
-      for (const auto &subtable : hb_iter (subtables, subtables_count))
-      {
-        if (subtable.apply_cached (c))
-	  return true;
-	if (!subtable.digest_rest.may_have (g))
-	  return false;
-      }
+      return
+      + hb_iter (hb_iter (subtables, subtables_count))
+      | hb_map ([&c] (const hb_accelerate_subtables_context_t::hb_applicable_t &_) { return _.apply_cached (c); })
+      | hb_any
+      ;
     }
     else
 #endif
     {
-      for (const auto &subtable : hb_iter (subtables, subtables_count))
-      {
-        if (subtable.apply (c))
-	  return true;
-	if (!subtable.digest_rest.may_have (g))
-	  return false;
-      }
+      return
+      + hb_iter (hb_iter (subtables, subtables_count))
+      | hb_map ([&c] (const hb_accelerate_subtables_context_t::hb_applicable_t &_) { return _.apply (c); })
+      | hb_any
+      ;
     }
     return false;
   }