Minor
diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh
index 57beb76..150c3de 100644
--- a/src/hb-ot-layout-gsub-table.hh
+++ b/src/hb-ot-layout-gsub-table.hh
@@ -296,12 +296,11 @@
struct Sequence
{
+ bool intersects (const hb_set_t *glyphs) const
+ { return hb_all (substitute, glyphs); }
+
void closure (hb_closure_context_t *c) const
- {
- unsigned int count = substitute.len;
- for (unsigned int i = 0; i < count; i++)
- c->output->add (substitute[i]);
- }
+ { c->output->add_array (substitute.arrayZ, substitute.len); }
void collect_glyphs (hb_collect_glyphs_context_t *c) const
{ c->output->add_array (substitute.arrayZ, substitute.len); }
@@ -353,7 +352,7 @@
const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
- if (!hb_all (substitute, glyphset)) return_trace (false);
+ if (!intersects (&glyphset)) return_trace (false);
auto it =
+ hb_iter (substitute)
@@ -528,11 +527,7 @@
struct AlternateSet
{
void closure (hb_closure_context_t *c) const
- {
- unsigned int count = alternates.len;
- for (unsigned int i = 0; i < count; i++)
- c->output->add (alternates[i]);
- }
+ { c->output->add_array (alternates.arrayZ, alternates.len); }
void collect_glyphs (hb_collect_glyphs_context_t *c) const
{ c->output->add_array (alternates.arrayZ, alternates.len); }
@@ -707,7 +702,7 @@
struct Ligature
{
bool intersects (const hb_set_t *glyphs) const
- { return hb_all (hb_iter (component), glyphs); }
+ { return hb_all (component, glyphs); }
void closure (hb_closure_context_t *c) const
{
@@ -791,7 +786,7 @@
const hb_set_t &glyphset = *c->plan->glyphset ();
const hb_map_t &glyph_map = *c->plan->glyph_map;
- if (!glyphset.has (ligGlyph) || !hb_all (component, glyphset)) return_trace (false);
+ if (!intersects (&glyphset) || !glyphset.has (ligGlyph)) return_trace (false);
auto it =
+ hb_iter (component)