[libpng17] Merge contrib/examples/pngtopng.c with libpng-1.6.29beta02
diff --git a/contrib/examples/pngtopng.c b/contrib/examples/pngtopng.c
index 4acf6b3..d4a51a8 100644
--- a/contrib/examples/pngtopng.c
+++ b/contrib/examples/pngtopng.c
@@ -1,10 +1,12 @@
/*- pngtopng
*
- * COPYRIGHT: Written by John Cunningham Bowler, 2011.
+ * COPYRIGHT: Written by John Cunningham Bowler, 2011, 2017.
* To the extent possible under law, the author has waived all copyright and
* related or neighboring rights to this work. This work is published from:
* United States.
*
+ * Last changed in libpng 1.6.29 [%RDATE%]
+ *
* Read a PNG and write it out in a fixed format, using the 'simplified API'
* that was introduced in libpng-1.6.0.
*
@@ -59,26 +61,27 @@
else
fprintf(stderr, "pngtopng: write %s: %s\n", argv[2],
image.message);
-
- free(buffer);
}
else
- {
fprintf(stderr, "pngtopng: read %s: %s\n", argv[1],
image.message);
- /* This is the only place where a 'free' is required; libpng does
- * the cleanup on error and success, but in this case we couldn't
- * complete the read because of running out of memory.
- */
- png_image_free(&image);
- }
+ free(buffer);
}
else
+ {
fprintf(stderr, "pngtopng: out of memory: %lu bytes\n",
(unsigned long)PNG_IMAGE_SIZE(image));
+
+ /* This is the only place where a 'free' is required; libpng does
+ * the cleanup on error and success, but in this case we couldn't
+ * complete the read because of running out of memory and so libpng
+ * has not got to the point where it can do cleanup.
+ */
+ png_image_free(&image);
+ }
}
else