RFR: 7083187: Class CSS.CssValue is missing implementations of equals() and hashCode() [v14]
Prasanta Sadhukhan
psadhukhan at openjdk.org
Fri Jun 2 08:12:57 UTC 2023
On Fri, 2 Jun 2023 04:57:34 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> src/java.desktop/share/classes/javax/swing/text/html/CSS.java line 2684:
>>
>>> 2682: return val instanceof CSS.LengthValue lu
>>> 2683: && Objects.equals(svalue, lu.svalue);
>>> 2684: }
>>
>> Why is this case still using the string and not 'span' ?
>
> This is because it can cater to both units like px,pt and %
> For example, for attributes
> `{"margin-top: 42px", "margin-top: 22px"}`
>
> `span `22.0, 42.0
> `percentage `false
> `units `px
>
> where we can use `span == lu.span && units == lu.units` check
> but for attributes like
> `{"margin-top: 100%", "margin-top: 200%"}`
>
> `span `1.0 for both
> `percentage `true
> `units `null
> (where the above equality check will not work and we need to use the string so for optimization I have used the same check for both)
> I guess span is 1.0 is because of this code
> https://github.com/openjdk/jdk/blob/325940b0919e649e84358db35a55b3ac5dfe0acf/src/java.desktop/share/classes/javax/swing/text/html/CSS.java#L2557-L2561
Removed optimization for non-percentage units which I guess will be more used and it will also do away with `{"margin-top: 42px", "margin-top: 42 px"}` space issue
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13405#discussion_r1214059460
More information about the client-libs-dev
mailing list