Minor fix re sanitize of Lookup subtables
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 12 Dec 2018 04:44:29 +0000 (23:44 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 12 Dec 2018 04:44:29 +0000 (23:44 -0500)
We were dereferencing Null pointers and trying to sanitize them,
which is not necessary...

src/hb-ot-layout-common.hh

index cc1af15..ba6fab0 100644 (file)
@@ -693,7 +693,9 @@ struct Lookup
     unsigned int lookup_type = get_type ();
     TRACE_DISPATCH (this, lookup_type);
     unsigned int count = get_subtable_count ();
-    for (unsigned int i = 0; i < count; i++) {
+    for (unsigned int i = 0; i < count; i++)
+    {
+      if (unlikely (!subTable.arrayZ[i])) continue;
       typename context_t::return_t r = get_subtable<TSubTable> (i).dispatch (c, lookup_type);
       if (c->stop_sublookup_iteration (r))
        return_trace (r);