63 lines
1.6 KiB
Text
63 lines
1.6 KiB
Text
$NetBSD: patch-ag,v 1.1 2001/08/03 09:43:18 wiz Exp $
|
|
|
|
--- rw/writePNG.c.orig Thu Aug 29 07:24:57 1996
|
|
+++ rw/writePNG.c
|
|
@@ -38,26 +38,23 @@
|
|
if (!fp)
|
|
return 1;
|
|
|
|
- png_ptr = (png_structp)malloc(sizeof (png_struct));
|
|
+ png_ptr = (png_structp)png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
|
|
+ NULL, NULL);
|
|
if (!png_ptr)
|
|
return 1;
|
|
|
|
- info_ptr = (png_infop)malloc(sizeof (png_info));
|
|
+ info_ptr = (png_infop)png_create_info_struct(png_ptr);
|
|
if (!info_ptr) {
|
|
- free(png_ptr);
|
|
+ png_destroy_write_struct(&png_ptr, NULL);
|
|
return 1;
|
|
}
|
|
|
|
- if (setjmp(png_ptr->jmpbuf)) {
|
|
- png_write_destroy(png_ptr);
|
|
- free(info_ptr);
|
|
- free(png_ptr);
|
|
+ if (setjmp(png_jmpbuf(png_ptr))) {
|
|
+ png_destroy_write_struct(&png_ptr, &info_ptr);
|
|
fclose(fp);
|
|
return 1;
|
|
}
|
|
|
|
- png_info_init(info_ptr);
|
|
- png_write_init(png_ptr);
|
|
png_init_io(png_ptr, fp);
|
|
|
|
info_ptr->width = image->width;
|
|
@@ -200,9 +197,7 @@
|
|
/* alpha channel version */
|
|
fprintf(stderr, "WritePNG: sorry, can't write alpha images yet\n");
|
|
fflush(stderr);
|
|
- png_write_destroy(png_ptr);
|
|
- free(info_ptr);
|
|
- free(png_ptr);
|
|
+ png_destroy_write_struct(&png_ptr, &info_ptr);
|
|
fclose(fp);
|
|
return 1;
|
|
} else {
|
|
@@ -222,13 +217,11 @@
|
|
}
|
|
|
|
png_write_end(png_ptr, NULL);
|
|
- png_write_destroy(png_ptr);
|
|
+ png_destroy_write_struct(&png_ptr, &info_ptr);
|
|
|
|
if (software)
|
|
free(software); /* we LOVE free software!! */
|
|
|
|
- free(info_ptr);
|
|
- free(png_ptr); /* necessary?? */
|
|
fclose(fp);
|
|
|
|
return 0;
|