Known bugs and suggested enhancements in libpng-1.0.5 1. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey Loops need to be optimized everywhere 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, postponed until after libpng-1.1.0. About 160 loops will be turned around in libpng-1.1.Nn, for testing. 2. July 4, 1998 -- ENHANCEMENT -- Glenn R-P libpng-1.0.5 and earlier transform colors to gamma=1.0 space for merging with background, and then back to the image's gamma. The bit_depth of the intermediate (gamma=1.0) representation is probably not sufficient. In the typical gamma=1/2.2 situation, the linear pixels need about 4 more bits than the gamma-encoded ones, to avoid loss of precision. A similar situation exists with the rgb_to_gray operation. STATUS: under development. 3. September 1999 -- ENHANCEMENT -- It should be possible to use libpng without floating-point aritmetic. STATUS: Under investigation, implementation postponed until after libpng-1.0.5. The application interface will change because replacements for the png_set_gAMA(), png_set_cHRM(), and corresponding png_get_() functions will be needed. Much of this was completed in libpng-1.0.5h, but gamma compensation is not yet done in fixed-point arithmetic. 4. October 1999 -- BUG pngvcrd.c is failing for interlaced PNGs that have empty passes. STATUS: A check for "width != 0" is required in several places. Fixed in libpng-1.0.5a/1.1.0 5. October 1999 -- BUG Under MSVC++6.0 with debugging enabled, heap corruption was detected while destroying the png_write_ptr. STATUS: This was fixed by modifying png_set_text (in pngset.c) to refrain from writing into the user's text_ptr. With this fix, however, pngwrite.c, while destroying the info_ptr, was failing to free the text->key strings. Fix for the latter problem is to duplicate code from png.c. Fixed in libpng-1.0.5a/1.1.0 6. December 1999 -- new BUG The png_text structure was modified in libpng-1.0.5e in a manner that is not backward compatible (the lang member was added, and the translated_key member was added to libpng-1.0.5g) STATUS: Fixed in libpng-1.0.5j/1.1.0 7. December 1999 -- BUG The new pnggccrd.c has syntax errors when compiled with gcc. STATUS: Under investigation.