On Wed, 31 May 2023 09:47:50 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> It might looks weird but it is the one which is working.
>> For example, for `{"font-size: 42px", "font-size: 22px"}`
>> 
>> `value` is 0.0
>> `svalue` is 42px, 22px
>> `index` false
>> `lu.units` px
>> so if I check 
>> 
>> 
>> return val instanceof CSS.FontSize size
>>                    && value == size.value
>>                    && index == size.index
>>                    && Objects.equals(lu, size.lu);
>> 
>> 
>> 
>> it will return equals `true `even though it should not be equal which is why 
>> I used `svalue`
>
> This is why you have to compare the entire value of `LengthUnit` as [I 
> described 
> above](https://github.com/openjdk/jdk/pull/13405#discussion_r1211318063).
> 
> From a quick debugging session, `"font-size: 42px"` is parsed into the 
> following values:
> 
> 
> CSS$FontSize
>     value = 0.0
>     index = false
>     svalue = "42px"
>     lu = {CSS$LengthUnit@1594} "0 42.0"
>         type = 0
>         value = 42.0
>         units = "px"
> 
> `"font-size: 22px"` is parsed into:
> 
> CSS$FontSize
>     value = 0.0
>     index = false
>     svalue = "22px"
>     lu = {CSS$LengthUnit@1594} "0 22.0"
>         type = 0
>         value = 22.0
>         units = "px"
> 
> 
> So [the implementation I suggested 
> today](https://github.com/openjdk/jdk/pull/13405#discussion_r1211318063) for 
> `FontSize.equals` and `LengthUnit.equals` handles it correctly.
> 
> The one that [I suggested last 
> week](https://github.com/openjdk/jdk/pull/13405#discussion_r1200351364) which 
> avoids implementing `LengthUnit.equals` does not work because it takes into 
> account only the `units` field of the `LengthUnit` object.

OK. Thanks for the suggestion..Updated `FontSize.equals` and `LenghtUnit.equals`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13405#discussion_r1211666980

Reply via email to