[serialize] Fix a TODO
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 10 May 2019 23:07:51 +0000 (16:07 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 11 May 2019 01:43:48 +0000 (18:43 -0700)
src/hb-ot-layout-common.hh

index 478e66c..2fd97cf 100644 (file)
@@ -1043,12 +1043,16 @@ struct Coverage
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (*this))) return_trace (false);
 
-    /* TODO(iter) Port to non-random-access iterator interface. */
-    unsigned int count = glyphs.len ();
-    unsigned int num_ranges = 1;
-    for (unsigned int i = 1; i < count; i++)
-      if (glyphs[i - 1] + 1 != glyphs[i])
-       num_ranges++;
+    unsigned count = 0;
+    unsigned num_ranges = 0;
+    hb_codepoint_t last = (hb_codepoint_t) -2;
+    for (auto g: glyphs)
+    {
+      if (last + 1 != g)
+        num_ranges++;
+      last = g;
+      count++;
+    }
     u.format = count * 2 < num_ranges * 3 ? 1 : 2;
 
     switch (u.format)