On Mon, 4 Aug 2025 05:59:41 GMT, Jeremy Wood <d...@openjdk.org> wrote:
>> 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-patrimo... > > Jeremy Wood has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 34 commits: > > - Merge branch 'master' into JDK-8351913 > - 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 > - ... and 24 more: https://git.openjdk.org/jdk/compare/57553ca1...ad69988d Once https://github.com/openjdk/jdk/pull/25264 is merged (specifically https://github.com/openjdk/jdk/pull/25264/commits/b418a02d1d8854d58aa8da9805c69e1ddd640502 ) this will include some new image dumping logic for debugging. I'll remove `rfr` for now until that ticket is merged. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24271#issuecomment-3151588621