From d34502b33f9eaeff3b315dcce7f88092a704ac4d Mon Sep 17 00:00:00 2001 From: Jiyoun Park Date: Thu, 19 Jul 2012 03:04:47 +0000 Subject: [PATCH] fix bug in jpeg saver. it override error handler before creation. modify override error hanler after creation SVN revision: 74153 --- legacy/evas/ChangeLog | 4 ++++ legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog index 284761a22f..4f3279d762 100644 --- a/legacy/evas/ChangeLog +++ b/legacy/evas/ChangeLog @@ -897,3 +897,7 @@ never have done this. This broke the general logic of size hint handling. +2012-07-19 Jiyoun Park(jypark) + + * Fix jpeg save bug related with error handler + diff --git a/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c b/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c index 247f0af2a2..c01dbdde8c 100644 --- a/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c +++ b/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c @@ -51,8 +51,8 @@ _JPEGErrorHandler2(j_common_ptr cinfo __UNUSED__, int msg_level __UNUSED__) static int save_image_jpeg(RGBA_Image *im, const char *file, int quality) { - struct _JPEG_error_mgr jerr; struct jpeg_compress_struct cinfo; + struct _JPEG_error_mgr jerr; FILE *f; DATA8 *buf; DATA32 *ptr; @@ -68,10 +68,11 @@ save_image_jpeg(RGBA_Image *im, const char *file, int quality) { return 0; } + memset(&cinfo, 0, sizeof(cinfo)); + cinfo.err = jpeg_std_error(&(jerr.pub)); jerr.pub.error_exit = _JPEGFatalErrorHandler; jerr.pub.emit_message = _JPEGErrorHandler2; jerr.pub.output_message = _JPEGErrorHandler; - cinfo.err = jpeg_std_error(&(jerr.pub)); if (sigsetjmp(jerr.setjmp_buffer, 1)) { jpeg_destroy_compress(&cinfo);