summaryrefslogtreecommitdiff
path: root/src/gd_jpeg.c
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2013-04-22 23:32:50 +0200
committerOndřej Surý <ondrej@sury.org>2013-04-22 23:32:50 +0200
commit36d5f8a75ae8b89c6e40aa07d037b6ad9109f822 (patch)
treefa5318ec068d78ce8343952a24caf66e399e075f /src/gd_jpeg.c
parent35ce262dd4119c49a26d53e5c471aab7ba41112c (diff)
downloadlibgd-36d5f8a75ae8b89c6e40aa07d037b6ad9109f822.tar.gz
Don't output jpeg error_message directly, but format it first and push it to gd_error_ex(GD_ERROR, ...)
Diffstat (limited to 'src/gd_jpeg.c')
-rw-r--r--src/gd_jpeg.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gd_jpeg.c b/src/gd_jpeg.c
index 11a1ad3..adb6f96 100644
--- a/src/gd_jpeg.c
+++ b/src/gd_jpeg.c
@@ -101,9 +101,10 @@ static void jpeg_emit_message(j_common_ptr jpeg_info, int level)
static void fatal_jpeg_error(j_common_ptr cinfo)
{
jmpbuf_wrapper *jmpbufw;
+ char buffer[JMSG_LENGTH_MAX];
- gd_error("gd-jpeg: JPEG library reports unrecoverable error: ");
- (*cinfo->err->output_message)(cinfo);
+ (*cinfo->err->format_message)(cinfo, buffer);
+ gd_error(GD_ERROR, "gd-jpeg: JPEG library reports unrecoverable error: %s", buffer);
jmpbufw = (jmpbuf_wrapper *)cinfo->client_data;
jpeg_destroy(cinfo);
@@ -186,6 +187,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
return;
}
+ cinfo.err->emit_message = jpeg_emit_message;
cinfo.err->error_exit = fatal_jpeg_error;
jpeg_create_compress(&cinfo);