> 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.
> 
> 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)
> 4. [8351913](https://github.com/openjdk/jdk/pull/24271) (this one)
> 
> This bug can be observed reading these gif animations:
> https://pixabay.com/gifs/pattern-mandela-geometric-loading-20162/
> https://pixabay.com/gifs/colourful-paint-spiral-pattern-20276/
> https://pixabay.com/gifs/dance-party-dancer-dancing-girl-19993/
> https://pixabay.com/gifs/spiral-orbit-colourful-pattern-20278/
> https://pixabay.com/gifs/flower-smiley-happy-yellow-bright-11997/
> https://pixabay.com/gifs/ghost-spooky-halloween-horror-20223/
> https://pixabay.com/gifs/fish-tadpole-sperm-decorative-20078/
> https://pixabay.com/gifs/cat-kitten-black-cats-sleep-nap-20104/
> https://giphy.com/gifs/party-gzhreEYEFrEYw
> https://giphy.com/gifs/hello-happy-birthday-all-xRVUlSCqTTZRLMdUiC
> https://giphy.com/gifs/GpANv0ZGOo973DNPyg
> https://giphy.com/gifs/pinatafarmsapp-birthday-happy-pinata-farms-rrmf3fICPZWg1MMXOW
> https://pixabay.com/gifs/stars-twinkle-sky-universe-cosmos-13910/
> https://pixabay.com/gifs/laundry-washing-clean-clothes-18875/
> https://giphy.com/gifs/cat-white-mikitti-VItynXR1BzF5z0aTM7
> https://giphy.com/gifs/love-good-morning-cute-sTuKV3kHCkuc1hzd5C
> https://giphy.com/gifs/tv2norge-dance-celebration-birthday-duNowzaVje6Di3hnOu
> https://tenor.com/view/hasher-sticker-gif-24531859
> https://giphy.com/gifs/animanias-emoji-mickey-mouse-minnie-BeiTtDrExJZsoHzglJ
> https://giphy.com/gifs/morning-good-gm-dvwk9tqWYN8Wn2s4yn
> https://giphy.com/gifs/memoriachilena-familia-memoria-chilena-patrimonio-cultural-comn-7rRmOg13aXImUOEhO7
> https://giphy.com/gifs/thegoodpla...

Jeremy Wood has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains 33 commits:

 - 8351913: re-wrapping line breaks
 - Merge branch 'master' into JDK-8351913
   
   # Conflicts:
   #    test/jdk/sun/awt/image/gif/GifComparison.java
 - Merge branch 'master' into JDK-8351913
 - 8356137: Adding copyright to GifComparison
 - 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
 - ... and 23 more: https://git.openjdk.org/jdk/compare/a86dd56d...166a998b

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

Changes: https://git.openjdk.org/jdk/pull/24271/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24271&range=06
  Stats: 53 lines in 4 files changed: 47 ins; 0 del; 6 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