> 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 with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains 29 additional commits since the 
last revision:

 - 8356320: trivial whitespace and comment changes
 - Merge branch 'master' into JDK-8351913
 - Merge branch 'master' of https://github.com/mickleness/jdk
 - 8351913: renaming class, rewording comment
   
   There's a cluster of 4 related gif tickets I intend to put in this /gif/ 
directory. I want to better clarify exactly what this test focuses on.
 - GifComparison: fixing error message
 - GifComparison: code cleanup
 - 8351913: change package to access GifComparison
 - GifComparison: adding common helper class for gif bugs
 - Merge branch 'master' into JDK-8351913
 - Merge branch 'master' of https://github.com/mickleness/jdk
 - ... and 19 more: https://git.openjdk.org/jdk/compare/088fc5f5...e5dbed64

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

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

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

  Stats: 125812 lines in 2777 files changed: 77417 ins; 33246 del; 15149 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

Reply via email to