2013-04-17 13:34:28 +00:00
|
|
|
libpng 1.6 is stricter in various ways, which can trip up the PNG loader as it
|
|
|
|
considers all warnings fatal.
|
2013-04-16 11:29:49 +00:00
|
|
|
|
2013-04-17 13:34:28 +00:00
|
|
|
Upstream-Status: Backport
|
2013-04-16 11:29:49 +00:00
|
|
|
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001
|
|
|
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
Date: Tue, 16 Apr 2013 10:58:56 +0100
|
|
|
|
Subject: [PATCH] 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>
|
|
|
|
---
|
|
|
|
src/cairo-png.c | 14 +++++++-------
|
|
|
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
|
|
|
|
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.
|
|
|
|
+ */
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|