FPII-2034: DO NOT MERGE Update libpng to 1.6.20
DO NOT MERGE Update libpng to 1.6.20
BUG:23265085
Change-Id: I2fc2106965c789a54f04412e9c63a0901b0c1e71
(cherry picked from commit 0b39f202aaedd3029e4270d2af7d58ba6634f9cd)
diff --git a/contrib/libtests/readpng.c b/contrib/libtests/readpng.c
index 7ba46d0..3336d4e 100644
--- a/contrib/libtests/readpng.c
+++ b/contrib/libtests/readpng.c
@@ -62,6 +62,7 @@
{
png_size_t rowbytes = png_get_rowbytes(png_ptr, info_ptr);
+ /* Failure to initialize these is harmless */
row = malloc(rowbytes);
display = malloc(rowbytes);
@@ -70,7 +71,12 @@
{
png_uint_32 height = png_get_image_height(png_ptr, info_ptr);
- int passes = png_set_interlace_handling(png_ptr);
+# ifdef PNG_READ_INTERLACING_SUPPORTED
+ int passes = png_set_interlace_handling(png_ptr);
+# else /* !READ_INTERLACING */
+ int passes = png_get_interlace_type(png_ptr, info_ptr) ==
+ PNG_INTERLACE_ADAM7 ? PNG_INTERLACE_ADAM7_PASSES : 1;
+# endif /* !READ_INTERLACING */
int pass;
png_start_read_image(png_ptr);
@@ -79,6 +85,11 @@
{
png_uint_32 y = height;
+# ifndef PNG_READ_INTERLACING_SUPPORTED
+ if (passes == PNG_INTERLACE_ADAM7_PASSES)
+ y = PNG_PASS_ROWS(y, pass);
+# endif /* READ_INTERLACING */
+
/* NOTE: this trashes the row each time; interlace handling won't
* work, but this avoids memory thrashing for speed testing.
*/