Quellcode durchsuchen

LibGfx: Don't reject valid GIF animations with interlaced frames

We were returning early from the deinterlacing loop after the very last
pass, but we should just let the outer loop finish and return instead.

This makes the Netscape animation on https://timmorgan.dev work. :^)
Andreas Kling vor 4 Jahren
Ursprung
Commit
57e10eadac
1 geänderte Dateien mit 2 neuen und 4 gelöschten Zeilen
  1. 2 4
      Userland/Libraries/LibGfx/GIFLoader.cpp

+ 2 - 4
Userland/Libraries/LibGfx/GIFLoader.cpp

@@ -401,10 +401,8 @@ static bool decode_frame(GIFLoadingContext& context, size_t frame_index)
                     if (image.interlaced) {
                         if (row + INTERLACE_ROW_STRIDES[interlace_pass] >= image.height) {
                             ++interlace_pass;
-                            // FIXME: We could probably figure this out earlier and fail before doing a bunch of work.
-                            if (interlace_pass >= 4)
-                                return false;
-                            row = INTERLACE_ROW_OFFSETS[interlace_pass];
+                            if (interlace_pass < 4)
+                                row = INTERLACE_ROW_OFFSETS[interlace_pass];
                         } else {
                             row += INTERLACE_ROW_STRIDES[interlace_pass];
                         }