RFR: 8356137: GifImageDecode can produce opaque image when disposal method changes [v9]
Jeremy Wood
duke at openjdk.org
Sun Jun 1 06:43:44 UTC 2025
> This resolves a gif parsing bug where an unwanted opaque rectangle could appear under these conditions:
>
> 1. The disposal method for frames is 1 (meaning "do not dispose", aka "DISPOSAL_SAVE")
> 2. The transparent pixel is non-zero
> 3. There's more than one such consecutive frame
>
> Previously: the GifImageDecoder would leave the saved_image pixels as zero when they were supposed to be transparent. This works great if the transparent pixel index is zero, but it flood fills the background of your frame with the zeroeth color otherwise.
>
> I wrote four PRs that share the GifComparison class in this PR. Once any of them clear code review the other PRs will be much simpler:
>
> 1. [8357034](https://github.com/openjdk/jdk/pull/25264)
> 2. [8356137](https://github.com/openjdk/jdk/pull/25044) (this one)
> 3. [8356320](https://github.com/openjdk/jdk/pull/25076)
> 4. [8351913](https://github.com/openjdk/jdk/pull/24271)
Jeremy Wood has updated the pull request incrementally with four additional commits since the last revision:
- 8356137: adding copyright
- 8356137: remove test file now that we use GifBuilder
- 8356137: Use new GifBuilder for 8356137 test case
This is in response to:
https://github.com/openjdk/jdk/pull/25044#pullrequestreview-2871107750
- 8356137: Adding GifBuilder to dynamically create test file
This can be used by multiple gif tests in this directory.
This is in response to:
https://github.com/openjdk/jdk/pull/25044#pullrequestreview-2871107750
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25044/files
- new: https://git.openjdk.org/jdk/pull/25044/files/e0546b1a..392a9e5f
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25044&range=08
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25044&range=07-08
Stats: 160 lines in 3 files changed: 154 ins; 4 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/25044.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25044/head:pull/25044
PR: https://git.openjdk.org/jdk/pull/25044
More information about the client-libs-dev
mailing list