[gpos] Break cycle-of-2 when cursive attaching

Fixes https://github.com/harfbuzz/harfbuzz/issues/2469
pull/2475/head
Behdad Esfahbod 5 years ago
parent 09dedb1b38
commit 7090707de6
  1. 6
      src/hb-ot-layout-gpos-table.hh

@ -1692,6 +1692,12 @@ struct CursivePosFormat1
else
pos[child].x_offset = x_offset;
/* If parent was attached to child, break them free.
* https://github.com/harfbuzz/harfbuzz/issues/2469
*/
if (unlikely (pos[parent].attach_chain() = -pos[child].attach_chain()))
pos[parent].attach_chain() = 0;
buffer->idx++;
return_trace (true);
}

Loading…
Cancel
Save