pkgsrc/graphics/xart/patches/patch-ag

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;