[OpenJDK 2D-Dev] [8] request for review: 4892259 GIF ImageReader does not call passComplete in IIOReadUpdateListener
Vadim Pakhnushev
vadim.pakhnushev at oracle.com
Thu May 16 19:25:35 UTC 2013
Phil, Andrew,
Would you please take a look at this updated fix posted half a year ago?
Thanks,
Vadim
On 20.11.2012 22:14, Vadim Pakhnushev wrote:
> Phil,
>
> That's right, interlaced images works as expected without the fix.
> Non-interlaced images could be considered single pass but the
> documentation states that the passStarted is called when progressive
> pass started.
> For examples, BMP reader doesn't call passStarted, but non-progressive
> JPEGs or PNGs do, so there is some inconsistency here.
> In the internal discussion back in 2007 Chris stated that
> "IIOReadUpdateListener.processPassStarted() is only intended to be
> called for progressive (aka interlaced) images."
>
> I've created automated regression test which checks that if the image
> was created with interlaced flag then corresponding methods are called
> and are not if the image is not interlaced.
>
> Please review the test:
> http://cr.openjdk.java.net/~bae/4892259/webrev.01/
>
> Thanks,
> Vadim
>
> On 20.11.2012 3:47, Phil Race wrote:
>> Vadim,
>>
>> So I take it that you confirmed interlaced images do *not* exhibit
>> this problem ?
>> Its not obvious from the bug report that its only non-interlaced
>> images that are the issue.
>>
>> I suppose a non-interlaced image could be considered a single pass but
>> I can't find anywhere that we mandated such a behaviour and it would
>> seem
>> odd for many formats to require it.
>>
>> Can we include a regression test for this fix ?
>>
>> --phil.
>>
>> On 11/19/2012 11:15 AM, Vadim Pakhnushev wrote:
>>> Hi,
>>>
>>> Please review a fix for bug 4892259:
>>> http://bugs.sun.com/view_bug.do?bug_id=4892259
>>> http://cr.openjdk.java.net/~bae/4892259/webrev.00/
>>>
>>> Actually GIFImageReader should not call neither passComplete, nor
>>> passStarted for non-interlaced images in the first place.
>>> So the fix is to check whether the image is interlaced or not and
>>> skip startPass method entirely in case of interlaced image.
>>> passComplete is called only for interlaced images.
>>>
>>> Thanks,
>>> Vadim
>>>
>>
>
>
More information about the 2d-dev
mailing list