Known bugs and suggested enhancements in libpng-1.0.1 1. March 13, 1998 -- BUG -- pngtrans.c: row_info->channels should be updated -- row_info->color_type should be updated -- STATUS: I think this is all fixed in libpng-1.0.1a but needs to be tested. 2. March 14, 1998 -- ENHANCEMENT -- Glenn We should add the G>GA, G>GX, G>AG, and G>XG transformations in png_do_read_filler() STATUS: Implemented in libpng-1.0.1a 3. March 14, 1998 -- BUG? -- Greg Roelofs pngrtran.c: if-test for channels/FILLER may be incorrect STATUS: Under investigation. Appears to be working correctly in libpng-1.0.1c. 4. March 15, 1998 -- BUG -- Kevin Bracey pngwtran.c: line 306: loop should count to row_info->width, not to row_info->width*row_info->channnels STATUS: Fixed in libpng-1.0.1a 5. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey Loops need to be optimized everywhere a. Make them count down instead of up -- Kevin Bracey Optimizing compilers don't need this, and making the change would be error prone -- Tom Lane, Glenn R-P Question whether i-- or --i is better. STATUS: Under investigation. About 150 loops turned around in libpng-1.0.1d, for testing. Object files and executables are about 20k smaller in SGI and gcc-compiled codes. b. Remove products and structure members from loop tests -- Glenn R-P Can be accomplished without messing with loop guts. This was shown to be effective on optimized SGI compiler: replace png_uint_32 i; for(i=0; i < s->a*s->b; i++) with png_uint_32 i, istop; istop = s->a*s->b; for(i=0; idate % 31" is wrong, should be "ptime->date % 32". STATUS: Fixed in libpng-1.0.1a 11. April 21, 1998 -- ENHANCEMENT -- relocation of composite macros png_composite() and png_composite_16() relocated to png.h STATUS: Done in libpng-1.0.1b 12. April 22, 1998 -- ENHANCEMENT -- makefile.sco Mike Hopkirk contributed a makefile for SCO osr5 and sco UW7 STATUS: Added to libpng-1.0.1b distribution 13: April 30, 1998 -- ENHANCEMENT -- warnings When people define out some of the read transformations and then try to use them, the request is silently ignored. It was suggested that a warning be issued in such cases. STATUS: Done in libpng-1.0.1b 14. May 2, 1998 -- BUG -- incorrect mask for filler bytes In pngrtran.c, png_do_filler(), the masks for hi_filler and low_filler should be 0xff instead of 0xf STATUS: Fixed in libpng-1.0.1c 15. May 3, 1998 -- BUG -- buffer overflow in png_do_read_filler() In pngrutil.c, max_pixel_depth needs to be set to 32 when using png_do_read_filler with palette images. STATUS: Fixed in libpng-1.0.1c (see also items 1 and 3 above). 16. May 3, 1998 -- BUG -- type definitions wrong on error functions -- Tom Lane In png_create_xxx_struct(), the error functions should have typedef png_voidp instead of (void *). Needs to be corrected in the functions, the prototypes in png.h, the example.c file, and libpng.txt and libpng.3 STATUS: Fixed in libpng-1.0.1c 17. May 10, 1998 -- DOCUMENTATION -- Greg There are a number of incorrect usages of "which" and "it's" in the comments. STATUS: Fixed in libpng-1.0.1c 18. May 20, 1998 -- BUG -- illegal use of side effects -- Magnus Holmgren In libpng-1.0.1b several illegal uses of side effects were introduced while tuning loops in pngrutil.c; also one in pngtrans.c. STATUS: Fixed in libpng-1.0.1d 19. May 20, 1998 -- ENHANCEMENT -- script for making DLL -- Bob Dellaca Bob Dellaca contributed script for making PNG DLL on Borland C++ 4.5 STATUS: Added to distribution in libpng-1.0.1d