Pekka Lampila
2007-Dec-19 13:53 UTC
[Swfdec] libswfdec/swfdec_image.c libswfdec/swfdec_image_decoder.c
libswfdec/swfdec_image.c | 4 ---- libswfdec/swfdec_image_decoder.c | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) New commits: commit 760372154c6a58777b2d593fd3555cf5a8c08128 Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Wed Dec 19 15:45:34 2007 +0200 Fix memory leaks in image code diff --git a/libswfdec/swfdec_image.c b/libswfdec/swfdec_image.c index f3d27fc..54e84ca 100644 --- a/libswfdec/swfdec_image.c +++ b/libswfdec/swfdec_image.c @@ -190,7 +190,6 @@ swfdec_image_jpeg_load (SwfdecImage *image) image->surface = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_RGB24, image->width, image->height, image->width * 4); cairo_surface_set_user_data (image->surface, &key, data, g_free); - cairo_surface_reference (image->surface); SWFDEC_LOG (" width = %d", image->width); SWFDEC_LOG (" height = %d", image->height); @@ -232,7 +231,6 @@ swfdec_image_jpeg2_load (SwfdecImage *image) image->surface = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_RGB24, image->width, image->height, image->width * 4); cairo_surface_set_user_data (image->surface, &key, data, g_free); - cairo_surface_reference (image->surface); SWFDEC_LOG (" width = %d", image->width); SWFDEC_LOG (" height = %d", image->height); @@ -298,7 +296,6 @@ swfdec_image_jpeg3_load (SwfdecImage *image) image->surface = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_ARGB32, image->width, image->height, image->width * 4); cairo_surface_set_user_data (image->surface, &key, data, g_free); - cairo_surface_reference (image->surface); } static void @@ -483,7 +480,6 @@ out: have_alpha ? CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24, image->width, image->height, image->width * 4); cairo_surface_set_user_data (image->surface, &key, data, g_free); - cairo_surface_reference (image->surface); } int diff --git a/libswfdec/swfdec_image_decoder.c b/libswfdec/swfdec_image_decoder.c index 522859b..17edf90 100644 --- a/libswfdec/swfdec_image_decoder.c +++ b/libswfdec/swfdec_image_decoder.c @@ -74,6 +74,8 @@ swfdec_image_get_size (SwfdecImage *image, guint *w, guint *h) if (h) *h = cairo_image_surface_get_width (surface); + cairo_surface_destroy (surface); + return TRUE; }