From f9c0a2dad09cd168fb28cdee09b4303f307ea56d Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 21 Sep 2009 13:43:54 -0400 Subject: [PATCH] [HB] Fix apply_lookup() loop Part of Bug 595539 - Regressions in rendering certain Thai sequences with OpenType font --- src/hb-ot-layout-gsubgpos-private.hh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index e96e4e39..fd9c7839 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -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; -- GitLab