[subset] reset the visited lookup count before each closure iteration.
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index 537df5a..46f5531 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -81,6 +81,9 @@
nesting_level_left++;
}
+ void reset_lookup_visit_count ()
+ { lookup_count = 0; }
+
bool lookup_limit_exceeded ()
{ return lookup_count > HB_MAX_LOOKUP_VISIT_COUNT; }
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 4e1d23e..6073364 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -1530,6 +1530,7 @@
unsigned int glyphs_length;
do
{
+ c.reset_lookup_visit_count ();
glyphs_length = glyphs->get_population ();
if (lookups)
{