RFR: 6176679: Application freezes when copying an animated gif image to the system clipboard

Aleksei Ivanov alexey.ivanov at oracle.com
Thu Apr 13 18:19:07 UTC 2023


Hi Alan,

On 12/04/2023 14:05, Alan Snyder wrote:
> Isn’t there a deeper issue here?
>
> I ran into a problem trying to analyze an image using a filter. The code was waiting for ALLBITS to be reported (as well as ERROR conditions), but for an animated GIF that never happens. I worked around that problem by stopping when a FRAME was reported, which was good enough for my purposes.

This is what this fix does: ALLBITS is never set for animated images, so 
FRAMEBITS is also added.

> I did not see any way to indicate that I did not want an animation or to determine when every frame had been produced once.

In the test code, when MediaTracker.waitForAll() returns, which 
indicates the image is loaded completely, only WIDTH, HEIGHT and 
PROPERTIES bits are set. FRAMEBITS bit is set only after the image 
starts animating.

> Did I miss something?
>
> There are many places where ALLBITS is tested. Are all of these places at risk when operating on an animated GIF?

I did a quick search for ALLBITS, I can see both FRAMEBITS | ALLBITS are 
used in many places; however, there are quite a few places in the code 
where ALLBITS is used exclusively, it may cause issues if used with 
animated images.

> Implementing animation by simulating an image of infinite size seems like a bad idea, to put it mildly.
>
>
>> <SNIP>
-- 
Regards,
Alexey



More information about the client-libs-dev mailing list