On Tue, 22 Feb 2022 08:59:52 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> Font comparison in JComponent.setFont() uses `font != oldFont` check which is 
> not correct as per Object equality essence. The correct way of checking font 
> equality is to use "equals" as is done in 
> [GlyphLayout](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/font/GlyphLayout.java#L144)
>  , 
> [StandardGlyphVector](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/font/StandardGlyphVector.java#L657)
>  etc
> 
> Existing jtreg, jck test are green.

What Graphics.setFont() says is irrelevant to this.
Looking at Component.java and Container.java which you need to since 
super.setFont(f) is called by both JComponent.setFont() and Container.setFont() 
"==" and "!=" are used there so this would be inconsistent.
You'd need to take a holistic look at all of these together and make risky 
changes
So I'm not sure we should change this. It might just cause unexpected 
regressions.
And see for example : https://github.com/openjdk/jdk/pull/7313 so we know 
Font.equals() isn't perfect.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7571

Reply via email to