summaryrefslogtreecommitdiff
path: root/image/jpeg.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-31 11:19:52 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-31 11:19:52 +0000
commitd7d48c34e6d65c2358202a9b1e09c44173140851 (patch)
treed978a383faf1e6c3811067c4bea02c5ce1ec7eb7 /image/jpeg.c
parente0590ba4da9c4b3cefd248723c8720a4073d5ae9 (diff)
downloadnetsurf-d7d48c34e6d65c2358202a9b1e09c44173140851.tar.gz
netsurf-d7d48c34e6d65c2358202a9b1e09c44173140851.tar.bz2
Redirect non-fatal errors to the NetSurf log
svn path=/trunk/netsurf/; revision=12633
Diffstat (limited to 'image/jpeg.c')
-rw-r--r--image/jpeg.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/image/jpeg.c b/image/jpeg.c
index 58fb43e22..7e75c6cf6 100644
--- a/image/jpeg.c
+++ b/image/jpeg.c
@@ -150,6 +150,21 @@ static void nsjpeg_term_source(j_decompress_ptr cinfo)
/**
+ * Error output handler for JPEG library.
+ *
+ * This logs to NetSurf log instead of stderr.
+ * Warnings only - fatal errors are trapped by nsjpeg_error_exit
+ * and do not call the output handler.
+ */
+static void nsjpeg_error_log(j_common_ptr cinfo)
+{
+ struct nsjpeg_error_mgr *err = (struct nsjpeg_error_mgr *) cinfo->err;
+ err->pub.format_message(cinfo, nsjpeg_error_buffer);
+ LOG(("%s", nsjpeg_error_buffer));
+}
+
+
+/**
* Fatal error handler for JPEG library.
*
* This prevents jpeglib calling exit() on a fatal error.
@@ -187,6 +202,7 @@ static bool nsjpeg_convert(struct content *c)
cinfo.err = jpeg_std_error(&jerr.pub);
jerr.pub.error_exit = nsjpeg_error_exit;
+ jerr.pub.output_message = nsjpeg_error_log;
if (setjmp(jerr.setjmp_buffer)) {
jpeg_destroy_decompress(&cinfo);
if (bitmap)