--- 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;