RFR: 8356320: GifImageDecoder can produce wrong image when GCE changes transparent pixel index [v2]

Jeremy Wood duke at openjdk.org
Fri Jul 11 23:01:24 UTC 2025


On Thu, 15 May 2025 00:33:19 GMT, Jeremy Wood <duke at openjdk.org> wrote:

>> When a gif frame's disposal code is DISPOSAL_BGCOLOR and we're maintaining a saved image: we have to flood-fill the frame's bounds. And if the transparent pixel index changes across frames: we could sometimes flood fill the wrong value, resulting in an opaque rectangle in the output image.
>> 
>> There are a cluster of four related PRs that share the GifComparison class in this PR.
>> 
>> 1. [8357034](https://github.com/openjdk/jdk/pull/25264)
>> 2. ~~[8356137](https://github.com/openjdk/jdk/pull/25044)~~ (integrated)
>> 3. [8356320](https://github.com/openjdk/jdk/pull/25076) (this one)
>> 4. [8351913](https://github.com/openjdk/jdk/pull/24271)
>> 
>> The test in this PR required [8356137's PR](https://github.com/openjdk/jdk/pull/25044) to pass.
>> 
>> This bug can be observed reading this gif animation:
>> https://tenor.com/view/fnf-free-download-fnf-free-download-fnf-fd-cyan-gif-15334412416964826224
>
> Jeremy Wood has updated the pull request incrementally with five additional commits since the last revision:
> 
>  - 8356320: fixing copy & paste typo
>  - GifComparison: fixing error message
>  - GifComparison: code cleanup
>  - 8356320: change package to access GifComparison
>  - GifComparison: adding common helper class for gif bugs

I merged with master and confirmed the unit test passes and the original sample gif (fnf-free-download in PR description) passes.

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

PR Comment: https://git.openjdk.org/jdk/pull/25076#issuecomment-3063986572


More information about the client-libs-dev mailing list