提交 3f9e2dce 编写于 作者: B Behdad Esfahbod

Fix contextual lookup recursion indexing

See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
上级 f5da11e0
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册