114 lines
3.5 KiB
Plaintext
114 lines
3.5 KiB
Plaintext
|
|
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
|
|
|
|
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.
|
|
|
|
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, count;
|
|
istop = s->a*s->b;
|
|
for(i=0; i<istop; i++)
|
|
|
|
STATUS: Mostly done in libpng-1.0.1a, done for all important loops.
|
|
|
|
c. Replace abs() with intrinsic ternary operations in Paeth
|
|
filtering -- Glenn R-P
|
|
|
|
STATUS: Done in libpng-1.0.1a
|
|
(can be restored to original behavior with #define PNG_USE_ABS)
|
|
|
|
d. In pngwutil.c, make separate simple loops to use when filter
|
|
heuristic sums aren't needed. -- Glenn R-P
|
|
|
|
STATUS: Done in libpng-1.0.1a
|
|
|
|
6. April 6, 1998 -- BUG -- bug in pngset.c (rowbytes too large) -- Bob Dellaca
|
|
|
|
pngset.c has a bug, introduced in version 0.99c, that sets rowbytes
|
|
too large when writing an image with bit_depth < 8
|
|
|
|
STATUS: Fixed in libpng-1.0.1a
|
|
|
|
7. April 10, 1998 -- BUG -- pngwutil weighted filtering bugs -- Glenn R-P
|
|
|
|
pngwutil.c has some bugs in the experimental weighted filter
|
|
algorithm (PNG_FILTER_XXX should be PNG_FILTER_VALUE_XXX in
|
|
several places)
|
|
|
|
STATUS: Andreas concurs. Fixed in libpng-1.0.1a
|
|
|
|
8. April 10, 1998 -- ENHANCEMENT -- run-time selection of malloc function
|
|
-- Bob Dellaca
|
|
|
|
pngmem.c currently provides a compile-time option to replace
|
|
png_malloc() and png_free(). It's been requested that these
|
|
be made possible at run time, via calls to new png_set_malloc_fn()
|
|
and png_set_free_fn() functions.
|
|
|
|
STATUS: Will do in libpng-1.0.1b
|
|
|
|
9. April 11, 1998 -- BUG -- incorrect truncation of tRNS data in
|
|
illegal PNG file where tRNS precedes PLTE -- Larry Reeve
|
|
|
|
There is a misplaced pngrutil code block that truncates tRNS if it has
|
|
more than num_palette entries -- test was done before num_palette was
|
|
defined. Although the PNG file is illegal, it shouldn't crash apps.
|
|
There is a simple fix; just moving the test to the point after
|
|
num_palette has been defined.
|
|
|
|
STATUS: Fixed in libpng-1.0.1a
|
|
|
|
10. April 16, 1998 -- BUG -- incorrect operation of png_convert_to_rfc1123
|
|
with 31st day of the month -- Steve Eddins
|
|
|
|
The "ptime->date % 31" is wrong, should be "ptime->date % 32".
|
|
|
|
STATUS: Fixed in libpng-1.0.1a
|