> 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. > > 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) > 3. [8356320](https://github.com/openjdk/jdk/pull/25076) > 4. [8351913](https://github.com/openjdk/jdk/pull/24271) (this one)
Jeremy Wood has updated the pull request incrementally with one additional commit since the last revision: 8356137: Adding copyright to GifComparison ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24271/files - new: https://git.openjdk.org/jdk/pull/24271/files/e5dbed64..7c45a736 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24271&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24271&range=04-05 Stats: 22 lines in 1 file changed: 22 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