[gtk+/gtk-2-18] Setup libjpeg error handlers early enough



commit e956191163886e7a428945c30bdcc9d0a63e8624
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Jan 6 22:44:16 2010 -0500

    Setup libjpeg error handlers early enough
    
    See bug 606068 for details.
    (cherry picked from commit 9fc436d810d12f75387bf8bfd440ef6db460500a)

 gdk-pixbuf/io-jpeg.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/gdk-pixbuf/io-jpeg.c b/gdk-pixbuf/io-jpeg.c
index 10b298d..5b9b63b 100644
--- a/gdk-pixbuf/io-jpeg.c
+++ b/gdk-pixbuf/io-jpeg.c
@@ -656,6 +656,13 @@ gdk_pixbuf__jpeg_image_begin_load (GdkPixbufModuleSizeFunc size_func,
 	context->src_initialized = FALSE;
 	context->in_output = FALSE;
 
+        /* From jpeglib.h: "NB: you must set up the error-manager
+         * BEFORE calling jpeg_create_xxx". */
+	context->cinfo.err = jpeg_std_error (&context->jerr.pub);
+	context->jerr.pub.error_exit = fatal_error_handler;
+        context->jerr.pub.output_message = output_message_handler;
+        context->jerr.error = error;
+
 	/* create libjpeg structures */
 	jpeg_create_decompress (&context->cinfo);
 
@@ -668,14 +675,7 @@ gdk_pixbuf__jpeg_image_begin_load (GdkPixbufModuleSizeFunc size_func,
 		return NULL;
 	}
 	memset (context->cinfo.src, 0, sizeof (my_source_mgr));
-       
-	src = (my_src_ptr) context->cinfo.src;
 
-	context->cinfo.err = jpeg_std_error (&context->jerr.pub);
-	context->jerr.pub.error_exit = fatal_error_handler;
-        context->jerr.pub.output_message = output_message_handler;
-        context->jerr.error = error;
-        
 	src = (my_src_ptr) context->cinfo.src;
 	src->pub.init_source = init_source;
 	src->pub.fill_input_buffer = fill_input_buffer;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]