5d56786eff
Added new "png_structrp" typedef. Because of the way libpng works both png_info and png_struct are always accessed via a single pointer. This means adding C99 'restrict' to the pointer gives the compiler some opportunity to optimize the code. This change allows that.
102 lines
4.9 KiB
Plaintext
102 lines
4.9 KiB
Plaintext
|
|
Libpng 1.6.0beta04 - December 24, 2011
|
|
|
|
This is not intended to be a public release. It will be replaced
|
|
within a few weeks by a public version or by another test version.
|
|
|
|
Files available for download:
|
|
|
|
Source files with LF line endings (for Unix/Linux) and with a
|
|
"configure" script
|
|
|
|
1.6.0beta04.tar.xz (LZMA-compressed, recommended)
|
|
1.6.0beta04.tar.gz
|
|
1.6.0beta04.tar.bz2
|
|
|
|
Source files with CRLF line endings (for Windows), without the
|
|
"configure" script
|
|
|
|
lp160b04.7z (LZMA-compressed, recommended)
|
|
lp160b04.zip
|
|
|
|
Other information:
|
|
|
|
1.6.0beta04-README.txt
|
|
1.6.0beta04-LICENSE.txt
|
|
|
|
Changes since the last public release (1.5.7):
|
|
|
|
Version 1.6.0beta01 [December 15, 2011]
|
|
Removed machine-generated configure files from the GIT repository (they will
|
|
continue to appear in the tarball distributions).
|
|
Restored the new 'simplified' API, which was started in libpng-1.5.7beta02
|
|
but later deleted from libpng-1.5.7beta05.
|
|
Added example programs for the new 'simplified' API.
|
|
Added ANSI-C (C90) headers and require them, and take advantage of the
|
|
change. Also fixed some of the projects/* and contrib/* files that needed
|
|
updates for libpng16 and the move of pngvalid.c.
|
|
With this change the required ANSI-C header files are assumed to exist: the
|
|
implementation must provide float.h, limits.h, stdarg.h and stddef.h and
|
|
libpng relies on limits.h and stddef.h existing and behaving as defined
|
|
(the other two required headers aren't used). Non-ANSI systems that don't
|
|
have stddef.h or limits.h will have to provide an appropriate fake
|
|
containing the relevant types and #defines.
|
|
The use of FAR/far has been eliminated and the definition of png_alloc_size_t
|
|
is now controlled by a flag so that 'small size_t' systems can select it
|
|
if necessary. Libpng 1.6 may not currently work on such systems -- it
|
|
seems likely that it will ask 'malloc' for more than 65535 bytes with any
|
|
image that has a sufficiently large row size (rather than simply failing
|
|
to read such images).
|
|
New tools directory containing tools used to generate libpng code.
|
|
Fixed race conditions in parallel make builds. With higher degrees of
|
|
parallelism during 'make' the use of the same temporary file names such
|
|
as 'dfn*' can result in a race where a temporary file from one arm of the
|
|
build is deleted or overwritten in another arm. This changes the
|
|
temporary files for suffix rules to always use $* and ensures that the
|
|
non-suffix rules use unique file names.
|
|
|
|
Version 1.6.0beta02 [December 21, 2011]
|
|
Correct configure builds where build and source directories are separate.
|
|
The include path of 'config.h' was erroneously made relative in pngvalid.c
|
|
in libpng 1.5.7.
|
|
|
|
Version 1.6.0beta03 [December 22, 2011]
|
|
Start-up code size improvements, error handler flexibility. These changes
|
|
alter how the tricky allocation of the initial png_struct and png_info
|
|
structures are handled. png_info is now handled in pretty much the same
|
|
way as everything else, except that the allocations handle NULL return
|
|
silently. png_struct is changed in a similar way on allocation and on
|
|
deallocation a 'safety' error handler is put in place (which should never
|
|
be required). The error handler itself is changed to permit mismatches
|
|
in the application and libpng error buffer size; however, this means a
|
|
silent change to the API to return the jmp_buf if the size doesn't match
|
|
the size from the libpng compilation; libpng now allocates the memory and
|
|
this may fail. Overall these changes result in slight code size
|
|
reductions; however, this is a reduction in code that is always executed
|
|
so is particularly valuable. Overall on a 64-bit system the libpng DLL
|
|
decreases in code size by 1733 bytes. pngerror.o increases in size by
|
|
about 465 bytes because of the new functionality.
|
|
|
|
Version 1.6.0beta04 [December 24, 2011]
|
|
Regenerated configure scripts with automake-1.11.2
|
|
Eliminated png_info_destroy(). It is now used only in png.c and only calls
|
|
one other internal function and memset().
|
|
Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
|
|
it was disabled whenever internal fixed point arithmetic was selected,
|
|
which meant it didn't exist even on systems where FP was available but not
|
|
preferred.
|
|
Added pngvalid.c compile time checks for const APIs.
|
|
Implemented 'restrict' for png_info and png_struct. Because of the way
|
|
libpng works both png_info and png_struct are always accessed via a
|
|
single pointer. This means adding C99 'restrict' to the pointer gives
|
|
the compiler some opportunity to optimize the code. This change allows
|
|
that.
|
|
|
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
|
(subscription required; visit
|
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
|
to subscribe)
|
|
or to glennrp at users.sourceforge.net
|
|
|
|
Glenn R-P
|