summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-06-12 18:04:09 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-06-12 18:04:09 +0000
commit91427fdfdbc9c237c90b5a224f47508e6c9a3859 (patch)
tree548708c85259be2d982496a96dead729c7eb5b4d
parent936baddabaac148f7c8831f38ec7f0d25f12078a (diff)
downloadnetsurf-91427fdfdbc9c237c90b5a224f47508e6c9a3859.tar.gz
netsurf-91427fdfdbc9c237c90b5a224f47508e6c9a3859.tar.bz2
Redirect libpng errors to the standard NetSurf logfile
svn path=/trunk/netsurf/; revision=12471
-rw-r--r--image/png.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/image/png.c b/image/png.c
index 3093c89e8..95f68ed94 100644
--- a/image/png.c
+++ b/image/png.c
@@ -75,6 +75,23 @@ static unsigned int interlace_row_start[8] = {0, 0, 4, 0, 2, 0, 1};
static unsigned int interlace_row_step[8] = {8, 8, 8, 4, 4, 2, 2};
/**
+ * nspng_warning -- callback for libpng warnings
+ */
+void nspng_warning(png_structp png_ptr, png_const_charp warning_message)
+{
+ LOG(("%s", warning_message));
+}
+
+/**
+ * nspng_error -- callback for libpng errors
+ */
+void nspng_error(png_structp png_ptr, png_const_charp error_message)
+{
+ LOG(("%s", error_message));
+ longjmp(png_ptr->jmpbuf, 1);
+}
+
+/**
* info_callback -- PNG header has been completely received, prepare to process
* image data
*/
@@ -209,6 +226,8 @@ static nserror nspng_create_png_data(nspng_content *png_c)
return NSERROR_NOMEM;
}
+ png_set_error_fn(png_c->png, NULL, nspng_error, nspng_warning);
+
png_c->info = png_create_info_struct(png_c->png);
if (png_c->info == NULL) {
png_destroy_read_struct(&png_c->png, &png_c->info, 0);