[aat] In ContextualSubstitute, apply end-of-text action to last glyph
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 4 Feb 2018 19:40:17 +0000 (14:40 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 4 Feb 2018 19:40:17 +0000 (14:40 -0500)
src/hb-aat-layout-morx-table.hh

index 68c32c4..ba9729c 100644 (file)
@@ -219,15 +219,16 @@ struct ContextualSubtable
          ret = true;
        }
       }
-      if (entry->data.currentIndex != 0xFFFF && buffer->idx < buffer->len)
+      if (entry->data.currentIndex != 0xFFFF)
       {
+        unsigned int idx = MIN (buffer->idx, buffer->len - 1);
        const Lookup<GlyphID> &lookup = subs[entry->data.currentIndex];
        hb_glyph_info_t *info = buffer->info;
-       const GlyphID *replacement = lookup.get_value (info[buffer->idx].codepoint, driver->num_glyphs);
+       const GlyphID *replacement = lookup.get_value (info[idx].codepoint, driver->num_glyphs);
        if (replacement)
        {
-         buffer->unsafe_to_break (driver->last_zero, MIN (buffer->idx + 1, buffer->len));
-         info[buffer->idx].codepoint = *replacement;
+         buffer->unsafe_to_break (driver->last_zero, idx + 1);
+         info[idx].codepoint = *replacement;
          ret = true;
        }
       }