summaryrefslogtreecommitdiffstats
path: root/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/imlib2/0002-GIF-loader-Simplify-error-handling.patch')
-rw-r--r--package/imlib2/0002-GIF-loader-Simplify-error-handling.patch175
1 files changed, 0 insertions, 175 deletions
diff --git a/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch b/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch
deleted file mode 100644
index c2b52547a4..0000000000
--- a/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From 908a179726d010963f4fe1b57fb5f7bf590d7d64 Mon Sep 17 00:00:00 2001
-From: Kim Woelders <kim@woelders.dk>
-Date: Tue, 31 Dec 2013 18:13:45 +0100
-Subject: [PATCH 2/5] GIF loader: Simplify error handling.
-
-Also:
-- Fix memory leak when image data allocation fails.
-- Some aux data arrays may as well be const.
----
- src/modules/loaders/loader_gif.c | 80 ++++++++++++++++------------------------
- 1 file changed, 32 insertions(+), 48 deletions(-)
-
-diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c
-index d1c2ae2..a39c860 100644
---- a/src/modules/loaders/loader_gif.c
-+++ b/src/modules/loaders/loader_gif.c
-@@ -8,6 +8,9 @@ char
- load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- char immediate_load)
- {
-+ static const int intoffset[] = { 0, 4, 2, 1 };
-+ static const int intjump[] = { 8, 8, 4, 2 };
-+ int rc;
- DATA32 *ptr;
- GifFileType *gif;
- GifRowType *rows;
-@@ -16,8 +19,6 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- int i, j, done, bg, r, g, b, w = 0, h = 0;
- float per = 0.0, per_inc;
- int last_per = 0, last_y = 0;
-- int intoffset[] = { 0, 4, 2, 1 };
-- int intjump[] = { 8, 8, 4, 2 };
- int transp;
- int fd;
-
-@@ -49,6 +50,8 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- return 0;
- }
-
-+ rc = 0; /* Failure */
-+
- do
- {
- if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
-@@ -66,37 +69,19 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- w = gif->Image.Width;
- h = gif->Image.Height;
- if (!IMAGE_DIMENSIONS_OK(w, h))
-- {
-- DGifCloseFile(gif);
-- return 0;
-- }
-- rows = malloc(h * sizeof(GifRowType *));
-+ goto quit2;
-+
-+ rows = calloc(h, sizeof(GifRowType *));
- if (!rows)
-- {
-- DGifCloseFile(gif);
-- return 0;
-- }
-- for (i = 0; i < h; i++)
-- {
-- rows[i] = NULL;
-- }
-+ goto quit2;
-+
- for (i = 0; i < h; i++)
- {
- rows[i] = malloc(w * sizeof(GifPixelType));
- if (!rows[i])
-- {
-- DGifCloseFile(gif);
-- for (i = 0; i < h; i++)
-- {
-- if (rows[i])
-- {
-- free(rows[i]);
-- }
-- }
-- free(rows);
-- return 0;
-- }
-+ goto quit;
- }
-+
- if (gif->Image.Interlace)
- {
- for (i = 0; i < 4; i++)
-@@ -135,6 +120,7 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- }
- }
- while (rec != TERMINATE_RECORD_TYPE);
-+
- if (transp >= 0)
- {
- SET_FLAG(im->flags, F_HAS_ALPHA);
-@@ -143,6 +129,7 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- {
- UNSET_FLAG(im->flags, F_HAS_ALPHA);
- }
-+
- /* set the format string member to the lower-case full extension */
- /* name for the format - so example names would be: */
- /* "png", "jpeg", "tiff", "ppm", "pgm", "pbm", "gif", "xpm" ... */
-@@ -150,17 +137,15 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- im->h = h;
- if (!im->format)
- im->format = strdup("gif");
-+
- if (im->loader || immediate_load || progress)
- {
- bg = gif->SBackGroundColor;
- cmap = (gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap);
- im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h);
- if (!im->data)
-- {
-- DGifCloseFile(gif);
-- free(rows);
-- return 0;
-- }
-+ goto quit;
-+
- ptr = im->data;
- per_inc = 100.0 / (((float)w) * h);
- for (i = 0; i < h; i++)
-@@ -188,30 +173,29 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
- last_per = (int)per;
- if (!(progress(im, (int)per, 0, last_y, w, i)))
- {
-- DGifCloseFile(gif);
-- for (i = 0; i < h; i++)
-- {
-- free(rows[i]);
-- }
-- free(rows);
-- return 2;
-+ rc = 2;
-+ goto quit;
- }
- last_y = i;
- }
- }
- }
-+
-+ if (progress)
-+ progress(im, 100, 0, last_y, w, h);
- }
-- if (progress)
-- {
-- progress(im, 100, 0, last_y, w, h);
-- }
-- DGifCloseFile(gif);
-+
-+ rc = 1; /* Success */
-+
-+ quit:
- for (i = 0; i < h; i++)
-- {
-- free(rows[i]);
-- }
-+ free(rows[i]);
- free(rows);
-- return 1;
-+
-+ quit2:
-+ DGifCloseFile(gif);
-+
-+ return rc;
- }
-
- void
---
-2.3.1
-
OpenPOWER on IntegriCloud