Fix subrange shaping logic when small caps feature is active
The existing logic was to exclude segmenter output that does not overlap with range start and range end (HarfBuzzShaper::Shape) and to restrict shaping to the character indexes of the queue items that contribute to the desired range. However, the latter restriction only worked if the case mapping for small caps did not chop up the queue items further, due to case change segmentation. Adding an early-out if the result of case mapping chopping produces queue items that fall outside the desired range. Thanks to kojii@ for the report and initial test case. Bug: 817271 Test: RangeShapeSmallCaps Change-Id: If8c0b00343e7b1c9a342305e5f44fa515ba3576c Reviewed-on: https://chromium-review.googlesource.com/964445Reviewed-by:Emil A Eklund <eae@chromium.org> Reviewed-by:
Koji Ishii <kojii@chromium.org> Commit-Queue: Dominik Röttsches <drott@chromium.org> Cr-Commit-Position: refs/heads/master@{#543464}
Showing
Please register or sign in to comment