Fixes loading of GIF images whose LZW stream fills the 4096-entry code table and then keeps emitting codes before a clear code (the "deferred clear code" region). ### Symptom Such a GIF fails to load with the builtin WIC GIF decoder. Through GDI+ (System.Drawing) it surfaces as "A generic error occurred in GDI+", and in a WinForms application as `System.ArgumentException: Parameter is not valid` at `System.Drawing.Image.get_FrameDimensionsList()`. Native Windows loads the same file. ### Cause In `DGifDecompressLine` (dlls/windowscodecs/ungif.c) a new dictionary entry is written at index `RunningCode - 2` for every code. `DGifDecompressInput` freezes `RunningCode` at `LZ_MAX_CODE + 2` once the table is full, so `RunningCode - 2` stays at 4095 and every later code overwrites the already-valid entry 4095. A subsequent code whose prefix chain runs through the corrupted entry then cycles, so the guard `if (j >= LZ_MAX_CODE || CrntPrefix > LZ_MAX_CODE)` returns `GIF_ERROR` and the whole image fails to load. ### Fix Only define a table entry while it is still empty (`NO_SUCH_CODE`), matching the corresponding upstream giflib change; this keeps the full table intact until a clear code arrives. ### Tests Adds a test to dlls/windowscodecs/tests/gifformat.c (a 64x64 GIF that fills the LZW table and then references the last code). It fails before the fix (`CopyPixels` returns E_FAIL) and passes after it. -- v3: windowscodecs/tests: Test decoding a GIF that fills the LZW code table. windowscodecs: Fix decoding GIFs that fill the LZW code table. https://gitlab.winehq.org/wine/wine/-/merge_requests/11209