Fix a couple otfautohint bugs found by testing with Momochidori #1751
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes two bugs found by hinting Momochidori. One fix removes a misguided rounding, the other fixes the use of an index variable.
This also adds a new "loose-overlap-mapping" to make the reverse mapping of path-elements-with-overlap-removed back onto original-path-elements less strict. This helps with path elements that are big "loops", which booleanOperations doesn't always preserve the shape of as well.
There are some other things we could try to avoid these kinds of heuristics, including switching from booleanOperations to Skia PathOps for overlap removal. However, the autohinter is just sort of OK, so I'm wary of putting hours into part A for superficial reasons just to avoid "formal" errors that may not have much of an impact on output. This flag was easy to add and mostly works around the problem. (You'll still get some missed mappings with the flag, just fewer of them. They're mostly harmless -- a bunch of things have to stack up for a given unmapped segment to make a difference.)
Checklist: