82 lines
2.5 KiB
Diff
82 lines
2.5 KiB
Diff
|
--- src/modules/loaders/gif/evas_image_load_gif.c.orig 2012-12-20 23:06:46.000000000 +0100
|
||
|
+++ src/modules/loaders/gif/evas_image_load_gif.c 2012-12-22 05:15:33.315952654 +0100
|
||
|
@@ -684,6 +684,7 @@ evas_image_load_file_head_gif(Image_Entr
|
||
|
int h;
|
||
|
int alpha;
|
||
|
int loop_count = -1;
|
||
|
+ int err = 0;
|
||
|
|
||
|
w = 0;
|
||
|
h = 0;
|
||
|
@@ -700,8 +701,8 @@ evas_image_load_file_head_gif(Image_Entr
|
||
|
return EINA_FALSE;
|
||
|
}
|
||
|
|
||
|
- gif = DGifOpenFileHandle(fd);
|
||
|
- if (!gif)
|
||
|
+ gif = DGifOpenFileHandle(fd, &err);
|
||
|
+ if (err != 0)
|
||
|
{
|
||
|
if (fd) close(fd);
|
||
|
*error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
|
||
|
@@ -822,7 +823,7 @@ evas_image_load_file_head_gif(Image_Entr
|
||
|
static Eina_Bool
|
||
|
evas_image_load_specific_frame(Image_Entry *ie, const char *file, int frame_index, int *error)
|
||
|
{
|
||
|
- int fd;
|
||
|
+ int fd, err = 0;
|
||
|
GifFileType *gif;
|
||
|
Image_Entry_Frame *frame = NULL;
|
||
|
Gif_Frame *gif_frame = NULL;
|
||
|
@@ -838,8 +839,8 @@ evas_image_load_specific_frame(Image_Ent
|
||
|
return EINA_FALSE;
|
||
|
}
|
||
|
|
||
|
- gif = DGifOpenFileHandle(fd);
|
||
|
- if (!gif)
|
||
|
+ gif = DGifOpenFileHandle(fd, &err);
|
||
|
+ if (err != 0)
|
||
|
{
|
||
|
if (fd) close(fd);
|
||
|
*error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
|
||
|
@@ -913,7 +914,7 @@ evas_image_load_file_data_gif(Image_Entr
|
||
|
evas_image_load_file_data_gif_internal(ie,frame,error);
|
||
|
else
|
||
|
{
|
||
|
- int fd;
|
||
|
+ int fd, err = 0;
|
||
|
GifFileType *gif;
|
||
|
|
||
|
#ifndef __EMX__
|
||
|
@@ -927,8 +928,8 @@ evas_image_load_file_data_gif(Image_Entr
|
||
|
return EINA_FALSE;
|
||
|
}
|
||
|
|
||
|
- gif = DGifOpenFileHandle(fd);
|
||
|
- if (!gif)
|
||
|
+ gif = DGifOpenFileHandle(fd, &err);
|
||
|
+ if (err != 0)
|
||
|
{
|
||
|
if (fd) close(fd);
|
||
|
*error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
|
||
|
@@ -976,7 +977,7 @@ evas_image_load_file_data_gif(Image_Entr
|
||
|
static double
|
||
|
evas_image_load_frame_duration_gif(Image_Entry *ie, const char *file, const int start_frame, const int frame_num)
|
||
|
{
|
||
|
- int fd;
|
||
|
+ int fd, err = 0;
|
||
|
GifFileType *gif;
|
||
|
GifRecordType rec;
|
||
|
int done;
|
||
|
@@ -1000,8 +1001,8 @@ evas_image_load_frame_duration_gif(Image
|
||
|
#endif
|
||
|
if (fd < 0) return -1;
|
||
|
|
||
|
- gif = DGifOpenFileHandle(fd);
|
||
|
- if (!gif)
|
||
|
+ gif = DGifOpenFileHandle(fd, &err);
|
||
|
+ if (err != 0)
|
||
|
{
|
||
|
if (fd) close(fd);
|
||
|
return -1;
|