+1
Regards
Prasanta
On 05-Sep-18 6:10 AM, Philip Race wrote:
This fixes 3 submitted bugs
https://bugs.openjdk.java.net/browse/JDK-7017058 : the Malayalam bug above
And also
https://bugs.openjdk.java.net/browse/JDK-8191130 :
Sinhala text rendering problem with C+VIRAMA+ZWJ+RA/YA+V
and
https://bugs.openjdk.java.net/browse/JDK-8195836:
opentype:Bengali: "Khanda Ta" shaping issue with U+09A4 TA, U+09CD
virama, U+200D ZWJ
Webrev: http://cr.openjdk.java.net/~prr/7017058/
As discussed in the evaluation of 7017058, this is because of some
code which
always maps several unicode formatting characters to the invisible
glyph to
ensure it is never rendered as a missing glyph box.
But if the opentype tables in a font have glyph substitution looks ups
that
depend on that font's actual mapping of those glyphs then they are broken.
We have had several reports of this (above) and also complaints this
breaks
Emoji family ligature substitution.
The fix changes this to first consult the font to see if it does map
these codepoints.
If it does not then we still will map to the empty glyph in which case
clearly the
font can't have any lookup that depends on it.
The variable origCharCode is added because several of the methods
mutate charCode
and we avoid risk with this approach.
The tab, NL and CR code points are still always mapped to the empty glyph
since they are never going to be used by layout in this way and some fonts
map TAB to a space char which is not what we want.
-phil.