diff options
Diffstat (limited to 'meta/packages/gtk+/gtk+-2.6.4-1.osso7/io-gif.c.diff')
-rw-r--r-- | meta/packages/gtk+/gtk+-2.6.4-1.osso7/io-gif.c.diff | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/meta/packages/gtk+/gtk+-2.6.4-1.osso7/io-gif.c.diff b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/io-gif.c.diff new file mode 100644 index 0000000000..a42d0e4ac2 --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/io-gif.c.diff | |||
@@ -0,0 +1,37 @@ | |||
1 | --- gtk+-2.6.4/gdk-pixbuf/io-gif.c 2004-11-12 07:34:31.000000000 +0200 | ||
2 | +++ gtk+-2.6.4/gdk-pixbuf/io-gif.c 2005-04-06 16:19:35.597126776 +0300 | ||
3 | @@ -920,6 +920,34 @@ | ||
4 | |||
5 | gdk_pixbuf_gif_anim_frame_composite (context->animation, prev_frame); | ||
6 | |||
7 | + /* Composite failed */ | ||
8 | + if (prev_frame->composited == NULL) { | ||
9 | + GdkPixbufFrame *frame = NULL; | ||
10 | + link = g_list_first (context->animation->frames); | ||
11 | + while (link != NULL) { | ||
12 | + frame = (GdkPixbufFrame *)link->data; | ||
13 | + if (frame != NULL) { | ||
14 | + if (frame->pixbuf != NULL) | ||
15 | + g_object_unref (frame->pixbuf); | ||
16 | + if (frame->composited != NULL) | ||
17 | + g_object_unref (frame->composited); | ||
18 | + if (frame->revert != NULL) | ||
19 | + g_object_unref (frame->revert); | ||
20 | + g_free (frame); | ||
21 | + } | ||
22 | + link = link->next; | ||
23 | + } | ||
24 | + | ||
25 | + g_list_free (context->animation->frames); | ||
26 | + context->animation->frames = NULL; | ||
27 | + | ||
28 | + g_set_error (context->error, | ||
29 | + GDK_PIXBUF_ERROR, | ||
30 | + GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, | ||
31 | + _("Not enough memory to composite a frame in GIF file")); | ||
32 | + return -2; | ||
33 | + } | ||
34 | + | ||
35 | x = context->frame->x_offset; | ||
36 | y = context->frame->y_offset; | ||
37 | w = gdk_pixbuf_get_width (context->frame->pixbuf); | ||