[HB] Fix apply_lookup() loop
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 21 Sep 2009 17:43:54 +0000 (13:43 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:48 +0000 (14:40 -0500)
Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font

src/hb-ot-layout-gsubgpos-private.hh

index e96e4e3..fd9c783 100644 (file)
@@ -219,7 +219,7 @@ static inline bool apply_lookup (APPLY_ARG_DEF,
 
   /* TODO We don't support lookupRecord arrays that are not increasing:
    *      Should be easy for in_place ones at least. */
-  for (unsigned int i = 0; i < count; i++)
+  for (unsigned int i = 0; i < count; /* NOP */)
   {
     while (_hb_ot_layout_skip_mark (context->face, IN_CURINFO (), lookup_flag, NULL))
     {
@@ -238,6 +238,7 @@ static inline bool apply_lookup (APPLY_ARG_DEF,
 
       lookupRecord++;
       lookupCount--;
+      /* Err, this is wrong if the lookup jumped over some glyphs */
       i += buffer->in_pos - old_pos;
       if (HB_UNLIKELY (buffer->in_pos == end))
        return true;