Fix infinite loop in normalization code with variation selectors
Reported by Jonathan Kew.
This commit is contained in:
parent
fd528c17b7
commit
af913c5788
|
@ -143,8 +143,11 @@ decompose_multi_char_cluster (hb_ot_shape_context_t *c,
|
||||||
{
|
{
|
||||||
/* TODO Currently if there's a variation-selector we give-up, it's just too hard. */
|
/* TODO Currently if there's a variation-selector we give-up, it's just too hard. */
|
||||||
for (unsigned int i = c->buffer->idx; i < end; i++)
|
for (unsigned int i = c->buffer->idx; i < end; i++)
|
||||||
if (unlikely (is_variation_selector (c->buffer->info[i].codepoint)))
|
if (unlikely (is_variation_selector (c->buffer->info[i].codepoint))) {
|
||||||
|
while (c->buffer->idx < end)
|
||||||
|
c->buffer->next_glyph ();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
while (c->buffer->idx < end)
|
while (c->buffer->idx < end)
|
||||||
decompose_current_glyph (c, FALSE);
|
decompose_current_glyph (c, FALSE);
|
||||||
|
|
Loading…
Reference in New Issue