gif loader: show the current frame image if getting row is failed. 68/258668/3
authorTaehyub Kim <taehyub.kim@samsung.com>
Mon, 24 May 2021 02:05:39 +0000 (11:05 +0900)
committerTaehyub Kim <taehyub.kim@samsung.com>
Mon, 24 May 2021 02:26:43 +0000 (11:26 +0900)
Change-Id: I17c79f89550e9a758a532babd55826b3c7ad2810

src/modules/evas/image_loaders/gif/evas_image_load_gif.c

index fec8f4b..6fd8cc6 100644 (file)
@@ -252,8 +252,9 @@ _decode_image(GifFileType *gif, DATA32 *data, int rowpix, int xin, int yin,
      {
         for (yy = 0; yy < fh; yy++)
           {
-             if (DGifGetLine(gif, rows[yy], fw) != GIF_OK)
-               goto on_error;
+             // current frame image should be shown
+             // even if the current line is not complete.
+             DGifGetLine(gif, rows[yy], fw);
           }
      }
 
@@ -659,8 +660,9 @@ open_file:
    // walk through gif records in file to figure out info
    do
      {
-        if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
-          LOADERR(EVAS_LOAD_ERROR_UNKNOWN_FORMAT);
+        // if getting the recored value is failed,
+        // it will be retried until the termination
+        DGifGetRecordType(gif, &rec);
         if (rec == EXTENSION_RECORD_TYPE)
           {
              int                 ext_code;