On Thu Oct 20 10:23:26 2022 +0000, Huw Davies wrote:
The recursive behaviour comes from commit 9a6cf4a39135. We'd want to create a test font which would trigger this behaviour to know what we should do.
It's not trivial to draw such conclusions from a test font. I was referencing this part of harfbuzz logic, that is a top level loop that applies lookups [1]. hb_ot_map_t::apply() iterates through stages (that we don't have in our usp), and applies all lookups for each stage, without skipping. apply_string<Proxy> is what iterates through subtables for a given lookup, skipping after first subtable that covers the glyph [2], there is no check there to see if glyph actually changes, only that current glyph is in the coverage.
But then again, there are other serious discrepancies between how lookups are treated, wrt sorting/duplicates eliminations, and stages that I mentioned.
[1] https://github.com/harfbuzz/harfbuzz/blob/970321db7bddbe8c579b73751fc655a924... [2] https://github.com/harfbuzz/harfbuzz/blob/970321db7bddbe8c579b73751fc655a924...