[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Jun 26 16:47:34 PDT 2013


 src/hb-ot-layout-gsubgpos-private.hh |   10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

New commits:
commit 3f9e2dced298c3d00f31b2dfc38685bb071a3a22
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jun 26 19:46:55 2013 -0400

    Fix contextual lookup recursion indexing
    
    See email thread "Skipping Control for Attaching Marks using OpenType"
    from earlier this month.

diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh
index 32c4a6d..2b95009 100644
--- a/src/hb-ot-layout-gsubgpos-private.hh
+++ b/src/hb-ot-layout-gsubgpos-private.hh
@@ -1009,15 +1009,12 @@ static inline bool apply_lookup (hb_apply_context_t *c,
   unsigned int i = 0;
   if (lookupCount && 0 == lookupRecord->sequenceIndex)
   {
-    unsigned int old_pos = c->buffer->idx;
-
     /* Apply a lookup */
     bool done = c->recurse (lookupRecord->lookupListIndex);
 
     lookupRecord++;
     lookupCount--;
-    /* Err, this is wrong if the lookup jumped over some glyphs */
-    i += c->buffer->idx - old_pos;
+    i++;
 
     if (!done)
       goto not_applied;
@@ -1044,15 +1041,12 @@ static inline bool apply_lookup (hb_apply_context_t *c,
 
     if (lookupCount && i == lookupRecord->sequenceIndex)
     {
-      unsigned int old_pos = c->buffer->idx;
-
       /* Apply a lookup */
       bool done = c->recurse (lookupRecord->lookupListIndex);
 
       lookupRecord++;
       lookupCount--;
-      /* Err, this is wrong if the lookup jumped over some glyphs */
-      i += c->buffer->idx - old_pos;
+      i++;
 
       if (!done)
 	goto not_applied2;



More information about the HarfBuzz mailing list