diff --git a/src/OT/Layout/GPOS/PairPosFormat2.hh b/src/OT/Layout/GPOS/PairPosFormat2.hh index 83b093b98..1bb0d60ae 100644 --- a/src/OT/Layout/GPOS/PairPosFormat2.hh +++ b/src/OT/Layout/GPOS/PairPosFormat2.hh @@ -244,7 +244,11 @@ struct PairPosFormat2_4 buffer->idx = skippy_iter.idx; if (len2) + { buffer->idx++; + // https://github.com/harfbuzz/harfbuzz/issues/3824 + buffer->unsafe_to_break (buffer->idx - 1, buffer->idx + 1); + } return_trace (true); } diff --git a/src/OT/Layout/GPOS/PairSet.hh b/src/OT/Layout/GPOS/PairSet.hh index aa48d933c..b1d9f83bc 100644 --- a/src/OT/Layout/GPOS/PairSet.hh +++ b/src/OT/Layout/GPOS/PairSet.hh @@ -128,8 +128,13 @@ struct PairSet if (applied_first || applied_second) buffer->unsafe_to_break (buffer->idx, pos + 1); + if (len2) - pos++; + { + pos++; + // https://github.com/harfbuzz/harfbuzz/issues/3824 + buffer->unsafe_to_break (pos - 1, pos + 1); + } buffer->idx = pos; return_trace (true);