RFR: 8351913: ToolkitImage renders some gifs wrong [v4]

Jeremy Wood duke at openjdk.org
Wed May 7 03:08:00 UTC 2025


> I do not have much background in LZW compression or in C, but I'm reasonably confident this resolves the problem I'm observing. It looks like the GifImageDecoder was not always correctly handling compression codes after the table reached its limit of ~4096. If anyone has suggestions for improvements I'm happy to make adjustments.
> 
> Luckily while debugging this: I was able to compare the flawed implementation (GifImageDecoder) with ImageIO's implementation (GIFImageReader) to help identify how the suffix/prefix tables are supposed to work.
> 
> ImageIO's implementation may have suffered a similar bug (maybe https://bugs.openjdk.org/browse/JDK-7131823 ?), and that appears to have been backported.
> 
> I have dozens of additional test cases for this problem, but unfortunately I don't have the rights to commit them to the OpenJDK repo. Feel free to email me for additional context/test cases.

Jeremy Wood has updated the pull request incrementally with one additional commit since the last revision:

  8351913: moving test package
  
  I have two other PRs in progress that place their tests in a dir like:
  /jdk/test/jdk/sun/awt/image/gif/bug8351913/
  
  They aren't approved/merged yet, but hopefully all 3 of these new gif bugs will be merged and they'll benefit from being grouped in the same new gif directory. (And maybe more will test/directories will follow.)

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/24271/files
  - new: https://git.openjdk.org/jdk/pull/24271/files/d555631c..1733a85e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24271&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24271&range=02-03

  Stats: 0 lines in 2 files changed: 0 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/24271.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24271/head:pull/24271

PR: https://git.openjdk.org/jdk/pull/24271


More information about the client-libs-dev mailing list