$OpenBSD: patch-bitmap_bmpng_c,v 1.1 2001/07/13 13:28:26 espie Exp $
--- bitmap/bmpng.c.orig	Fri Jul 13 15:07:41 2001
+++ bitmap/bmpng.c	Fri Jul 13 15:15:19 2001
@@ -148,7 +148,7 @@ int bmReadPngFile(	const char *		filenam
     FILE *		f;
 
     png_struct		png;
-    png_info		pngi;
+    png_infop		pngi;
 
     unsigned char *	buffer;
 
@@ -167,30 +167,30 @@ int bmReadPngFile(	const char *		filenam
     if  ( setjmp( png.jmpbuf ) )
 	{
 	SDEB(filename);
-	png_read_destroy( &png, &pngi, (png_info *)0 );
+	png_read_destroy( &png, pngi, (png_info *)0 );
 	fclose( f );
 	return -1;
 	}
 
-    png_info_init( &pngi );
+    pngi = png_create_info_struct(&png);
     png_read_init( &png );
 
     png_init_io( &png, f );
 
-    png_read_info( &png, &pngi );
+    png_read_info( &png, pngi );
 
-    if  ( bpPngiToBitmap( &pngi, bd ) )
+    if  ( bpPngiToBitmap( pngi, bd ) )
 	{
 	LLDEB(bd->bdColorCount,bd->bdRGB8Palette); 
-	png_read_destroy( &png, &pngi, (png_info *)0 );
+	png_read_destroy( &png, pngi, (png_info *)0 );
 	fclose( f );
 	return -1;
 	}
 
-    if  ( bmPngReadContents( &pngi, &png, bd, &buffer ) )
+    if  ( bmPngReadContents( pngi, &png, bd, &buffer ) )
 	{
 	LLDEB(bd->bdBufferLength,buffer);
-	png_read_destroy( &png, &pngi, (png_info *)0 );
+	png_read_destroy( &png, pngi, (png_info *)0 );
 	fclose( f );
 	return -1;
 	}
@@ -200,6 +200,8 @@ int bmReadPngFile(	const char *		filenam
     *pBuffer= buffer;
     *pPrivateFormat= 0;
 
+    png_destroy_info_struct(&png, &pngi);
+
     return 0;
     }
 
@@ -227,37 +229,38 @@ int bmPngReadPng(	BitmapDescription *	bd
 			SimpleInputStream *	sis )
     {
     png_struct		png;
-    png_info		pngi;
+    png_infop		pngi;
 
     unsigned char *	buffer;
 
     if  ( setjmp( png.jmpbuf ) )
-	{ LDEB(1); png_read_destroy( &png, &pngi, (png_info *)0 ); return -1; }
+	{ LDEB(1); png_read_destroy( &png, pngi, (png_info *)0 ); return -1; }
 
-    png_info_init( &pngi );
+    pngi = png_create_info_struct(&png);
     png_read_init( &png );
 
     png_init_io( &png, (FILE *)0 );
     png_set_read_fn( &png, (void *)sis, bmReadPngBytes );
 
-    png_read_info( &png, &pngi );
+    png_read_info( &png, pngi );
 
-    if  ( bpPngiToBitmap( &pngi, bd ) )
+    if  ( bpPngiToBitmap( pngi, bd ) )
 	{
 	LLDEB(bd->bdColorCount,bd->bdRGB8Palette); 
-	png_read_destroy( &png, &pngi, (png_info *)0 );
+	png_read_destroy( &png, pngi, (png_info *)0 );
 	return -1;
 	}
 
-    if  ( bmPngReadContents( &pngi, &png, bd, &buffer ) )
+    if  ( bmPngReadContents( pngi, &png, bd, &buffer ) )
 	{
 	LLDEB(bd->bdBufferLength,buffer);
-	png_read_destroy( &png, &pngi, (png_info *)0 );
+	png_read_destroy( &png, pngi, (png_info *)0 );
 	return -1;
 	}
 
     *pBuffer= buffer;
 
+    png_destroy_info_struct(&png, &pngi);
     return 0;
     }
 
