41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
|
From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
Date: Tue, 16 Apr 2013 09:58:56 +0000
|
||
|
Subject: png: Avoid marking the surface as in error after a png warning
|
||
|
|
||
|
It turns out that libpng will continue to load an image after throwing a
|
||
|
warning, and that libpng16 now throws warnings for images that libpng15
|
||
|
and earlier loaded without error. As we were happily loading those
|
||
|
images into cairo surfaces before, we are therefore being overzealous
|
||
|
in throwing an error now - so just squelch the warning.
|
||
|
|
||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
---
|
||
|
diff --git a/src/cairo-png.c b/src/cairo-png.c
|
||
|
index e74a4a8..068617d 100644
|
||
|
--- a/src/cairo-png.c
|
||
|
+++ b/src/cairo-png.c
|
||
|
@@ -149,13 +149,13 @@ static void
|
||
|
png_simple_warning_callback (png_structp png,
|
||
|
png_const_charp error_msg)
|
||
|
{
|
||
|
- cairo_status_t *error = png_get_error_ptr (png);
|
||
|
-
|
||
|
- /* default to the most likely error */
|
||
|
- if (*error == CAIRO_STATUS_SUCCESS)
|
||
|
- *error = _cairo_error (CAIRO_STATUS_NO_MEMORY);
|
||
|
-
|
||
|
- /* png does not expect to abort and will try to tidy up after a warning */
|
||
|
+ /* png does not expect to abort and will try to tidy up and continue
|
||
|
+ * loading the image after a warning. So we also want to return the
|
||
|
+ * (incorrect?) surface.
|
||
|
+ *
|
||
|
+ * We use our own warning callback to squelch any attempts by libpng
|
||
|
+ * to write to stderr as we may not be in control of that output.
|
||
|
+ */
|
||
|
}
|
||
|
|
||
|
|
||
|
--
|
||
|
cgit v0.9.0.2-2-gbebe
|