Hi Jim,

Thanks for the approval.
I have not changed things in test case.

Regards,
Jay
-----Original Message-----
From: Jim Graham 
Sent: Friday, April 29, 2016 2:33 PM
To: Jayathirth D V; Philip Race
Cc: 2d-dev@openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] Review Request for JDK-7107905: equals() method 
in IndexColorModel doesnt exist and it relies on ColorModel.equals() which is 
not strict

That looks fine.  I assumed that the test case hadn't changed since last time 
and didn't read through it.  Let me know if I need to look at anything in that 
file...

...jim

On 04/29/2016 01:21 AM, Jayathirth D V wrote:
> Hi Jim,
>
> Thanks for the review.
> I have updated the changes mentioned by you. ICM.hashCode() was generated 
> using NetBeans and I added super.hashCode() to include things from 
> ColorModel. Initializing "hash" to 7 is redundant so I removed it and 
> initialized to super.hashCode().
>
> Please find updated webrev for review :
> http://cr.openjdk.java.net/~jdv/7107905/webrev.06/
>
> I will make changes in CCC after technical review is approved.
>
> Thanks,
> Jay
> -----Original Message-----
> From: Jim Graham
> Sent: Wednesday, April 27, 2016 4:24 AM
> To: Jayathirth D V; Philip Race
> Cc: 2d-dev@openjdk.java.net
> Subject: Re: [OpenJDK 2D-Dev] Review Request for JDK-7107905: equals() 
> method in IndexColorModel doesnt exist and it relies on 
> ColorModel.equals() which is not strict
>
> This version of the ICM.equals() method starts with casting the unkown obj to 
> ICM, which may throw a cast exception.  That cast needs to be moved down 
> after the call to super.equals() ("this == cm" can just be "this == obj").
>
> In the ICM hashcode function, is there a reason that the hash variable isn't 
> just initialized to super.hashCode() rather than starting with 7 and doing a 
> multiply-add to incorporate the super hashcode?
>
>                       ...jim
>
> On 4/25/16 1:26 AM, Jayathirth D V wrote:
>> Hi,
>>
>> Based on Joe's and Jim's suggestion I have made changes to include check for 
>> getClass() in baseclass and use super.equals() from subclasses to verify 
>> class equality.
>> Please find updated webrev for review :
>> http://cr.openjdk.java.net/~jdv/7107905/webrev.05/
>>
>> For JDK-8153943 I will make relevant changes in its subclasses and sent 
>> review in its thread.
>>
>> Thanks,
>> Jay
>>
>> -----Original Message-----
>> From: Jim Graham
>> Sent: Thursday, April 14, 2016 2:57 AM
>> To: Jayathirth D V; Philip Race
>> Cc: 2d-dev@openjdk.java.net
>> Subject: Re: [OpenJDK 2D-Dev] Review Request for JDK-7107905: 
>> equals() method in IndexColorModel doesnt exist and it relies on
>> ColorModel.equals() which is not strict
>>
>> Looks good.  The only thing left is the CCC...
>>
>>                      ...jim
>>
>> On 4/13/16 1:33 AM, Jayathirth D V wrote:
>>> Hi,
>>>
>>> Thanks Phil & Jim for your suggestion.
>>> I have made changes mentioned by Jim for  whether we have validate 
>>> individual bits of validBits or not in different conditions.
>>> Please find updated webrev for review :
>>> http://cr.openjdk.java.net/~jdv/7107905/webrev.04/
>>>
>>> Thanks,
>>> Jay
>>>
>>> -----Original Message-----
>>> From: Phil Race
>>> Sent: Wednesday, April 13, 2016 1:49 AM
>>> To: Jim Graham
>>> Cc: Jayathirth D V; Prasanta Sadhukhan; 2d-dev@openjdk.java.net
>>> Subject: Re: Review Request for JDK-7107905: equals() method in 
>>> IndexColorModel doesnt exist and it relies on ColorModel.equals() 
>>> which is not strict
>>>
>>> Seems like this would work/help.
>>>
>>> -phil.
>>>
>>> On 04/12/2016 01:19 PM, Jim Graham wrote:
>>>>
>>>> On 4/12/2016 12:59 PM, Phil Race wrote:
>>>>> I am catching up on email here, and "+1" but a couple of comments
>>>>>
>>>>> - I suppose that we can't learn anything useful from 
>>>>> "cm.validbits.equals(this.validbits)"
>>>>> since only the bits up to "map_size" should be tested ?
>>>> Perhaps if the constructors truncated it at the required size we 
>>>> could use equals().  I'm not sure that is worthwhile, given how 
>>>> rarely it is used.  I think it is used by default on some platforms 
>>>> (Windows?
>>>> X11?) if they have an 8-bit screen with a sparse colormap, but that 
>>>> should be pretty rare these days since nearly everything we use 
>>>> should be 24-bits these days.
>>>>
>>>> I have a better idea, though.
>>>>
>>>> But, since the field is assigned the original supplied value from 
>>>> the constructor, then the likelihood that a non-null value will be 
>>>> == identical to another colormap is likely larger than normal, 
>>>> perhaps we can make it faster by checking for == and then slipping 
>>>> into the faster test that simply compares the rgb[] values? Something like:
>>>>
>>>> if (validBits == cm.validBits) {
>>>>       compare rgb[] entries
>>>> } else if (validBits == null || cm.validBits == null) {
>>>>       return false;
>>>> } else {
>>>>       bigger loop that compares rgb[] and validBits() values }
>>>>
>>>> Note that if the two fields are == and non-null, then the entries 
>>>> in the rgb[] array for indices that are non-valid should have zeros 
>>>> in them because of the way that the colormap data is copied 
>>>> internally, so the rgb[] comparisons should be valid without 
>>>> checking the associated bits.
>>>>
>>>> Potentially we could also use:
>>>>
>>>> boolean fulltest;
>>>> if (validBits == cm.validBits) {
>>>>       fulltest = false;
>>>> } else if (validBits == null || cm.validBits == null) {
>>>>       return false;
>>>> } else if (validBits.equals(cm.validBits)) {
>>>>       fulltest = false;
>>>> } else {
>>>>       fulltest = true;
>>>> }
>>>>
>>>> if (fulltest) {
>>>>       compare both rgb[] and validBits() values } else {
>>>>       compare rgb[] entries alone
>>>> }
>>>>
>>>> In this case we are using validBits.equals() to reduce the amount 
>>>> of testing in the loop, but are not basing a conclusion on whether 
>>>> the result of the comparison will be true or false.  equals() 
>>>> implies we don't need to compare its values bit by bit, but 
>>>> !equals() doesn't mean that the ICMs aren't equals()...
>>>>
>>>>               ...jim

Reply via email to