[GPOS.PairPos] Adjust unsafe-to-break for non-zero ValueFormat2

Fixes https://github.com/harfbuzz/harfbuzz/issues/3824
This commit is contained in:
Behdad Esfahbod 2022-11-11 12:45:12 -07:00
parent 85e0be1357
commit ea63e95e4c
2 changed files with 10 additions and 1 deletions

View File

@ -244,7 +244,11 @@ struct PairPosFormat2_4
buffer->idx = skippy_iter.idx; buffer->idx = skippy_iter.idx;
if (len2) if (len2)
{
buffer->idx++; buffer->idx++;
// https://github.com/harfbuzz/harfbuzz/issues/3824
buffer->unsafe_to_break (buffer->idx - 1, buffer->idx + 1);
}
return_trace (true); return_trace (true);
} }

View File

@ -128,8 +128,13 @@ struct PairSet
if (applied_first || applied_second) if (applied_first || applied_second)
buffer->unsafe_to_break (buffer->idx, pos + 1); buffer->unsafe_to_break (buffer->idx, pos + 1);
if (len2) if (len2)
pos++; {
pos++;
// https://github.com/harfbuzz/harfbuzz/issues/3824
buffer->unsafe_to_break (pos - 1, pos + 1);
}
buffer->idx = pos; buffer->idx = pos;
return_trace (true); return_trace (true);