mirror of https://github.com/stella-emu/stella.git
Updated ZLIB and PNG libraries to latest released versions.
This commit is contained in:
parent
fadf9d5535
commit
7f6637a802
14
Makefile
14
Makefile
|
@ -45,9 +45,9 @@ include config.mak
|
||||||
# CXXFLAGS+= -Werror
|
# CXXFLAGS+= -Werror
|
||||||
|
|
||||||
ifdef CXXFLAGS
|
ifdef CXXFLAGS
|
||||||
CXXFLAGS:= $(CXXFLAGS)
|
CXXFLAGS:= $(CXXFLAGS) -x c++
|
||||||
else
|
else
|
||||||
CXXFLAGS:= -O2
|
CXXFLAGS:= -O2 -x c++
|
||||||
endif
|
endif
|
||||||
CXXFLAGS+= -Wall -Wextra -Wno-unused-parameter -Wno-ignored-qualifiers
|
CXXFLAGS+= -Wall -Wextra -Wno-unused-parameter -Wno-ignored-qualifiers
|
||||||
ifdef HAVE_GCC
|
ifdef HAVE_GCC
|
||||||
|
@ -66,7 +66,7 @@ endif
|
||||||
# Even more warnings...
|
# Even more warnings...
|
||||||
#CXXFLAGS+= -pedantic -Wpointer-arith -Wcast-qual -Wconversion
|
#CXXFLAGS+= -pedantic -Wpointer-arith -Wcast-qual -Wconversion
|
||||||
#CXXFLAGS+= -Wshadow -Wimplicit -Wundef -Wnon-virtual-dtor
|
#CXXFLAGS+= -Wshadow -Wimplicit -Wundef -Wnon-virtual-dtor
|
||||||
#CXXFLAGS+= -Wno-reorder -Wwrite-strings -fcheck-new -Wctor-dtor-privacy
|
#CXXFLAGS+= -Wno-reorder -Wwrite-strings -fcheck-new -Wctor-dtor-privacy
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# Misc stuff - you should never have to edit this #
|
# Misc stuff - you should never have to edit this #
|
||||||
|
@ -112,7 +112,7 @@ CPPFLAGS:= $(DEFINES) $(INCLUDES)
|
||||||
|
|
||||||
# Depdir information
|
# Depdir information
|
||||||
DEPDIRS = $(addsuffix /$(DEPDIR),$(MODULE_DIRS))
|
DEPDIRS = $(addsuffix /$(DEPDIR),$(MODULE_DIRS))
|
||||||
DEPFILES =
|
DEPFILES =
|
||||||
|
|
||||||
# The build rule for the Stella executable
|
# The build rule for the Stella executable
|
||||||
$(EXECUTABLE): $(OBJS)
|
$(EXECUTABLE): $(OBJS)
|
||||||
|
@ -132,7 +132,7 @@ clean:
|
||||||
|
|
||||||
ifndef CXX_UPDATE_DEP_FLAG
|
ifndef CXX_UPDATE_DEP_FLAG
|
||||||
# If you use GCC, disable the above and enable this for intelligent
|
# If you use GCC, disable the above and enable this for intelligent
|
||||||
# dependency tracking.
|
# dependency tracking.
|
||||||
CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2"
|
CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2"
|
||||||
.cxx.o:
|
.cxx.o:
|
||||||
$(MKDIR) $(*D)/$(DEPDIR)
|
$(MKDIR) $(*D)/$(DEPDIR)
|
||||||
|
@ -216,6 +216,6 @@ src/emucore/M6502.ins: src/emucore/M6502.m4
|
||||||
|
|
||||||
# Special rule for windows icon stuff (there's probably a better way to do this ...)
|
# Special rule for windows icon stuff (there's probably a better way to do this ...)
|
||||||
src/windows/stella_icon.o: src/windows/stella.ico src/windows/stella.rc
|
src/windows/stella_icon.o: src/windows/stella.ico src/windows/stella.rc
|
||||||
windres --include-dir src/windows src/windows/stella.rc src/windows/stella_icon.o
|
windres --include-dir src/windows src/windows/stella.rc src/windows/stella_icon.o
|
||||||
|
|
||||||
.PHONY: deb bundle test install uninstall
|
.PHONY: deb bundle test install uninstall
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.28 [January 5, 2017]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
#include "pngpriv.h"
|
#include "pngpriv.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef png_libpng_version_1_6_28 Your_png_h_is_not_version_1_6_28;
|
typedef png_libpng_version_1_6_30 Your_png_h_is_not_version_1_6_30;
|
||||||
|
|
||||||
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
||||||
* of the PNG file signature. If the PNG data is embedded into another
|
* of the PNG file signature. If the PNG data is embedded into another
|
||||||
|
@ -776,14 +776,14 @@ png_get_copyright(png_const_structrp png_ptr)
|
||||||
#else
|
#else
|
||||||
# ifdef __STDC__
|
# ifdef __STDC__
|
||||||
return PNG_STRING_NEWLINE \
|
return PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.6.28 - January 5, 2017" PNG_STRING_NEWLINE \
|
"libpng version 1.6.30 - June 28, 2017" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson" \
|
"Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson" \
|
||||||
PNG_STRING_NEWLINE \
|
PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
||||||
PNG_STRING_NEWLINE;
|
PNG_STRING_NEWLINE;
|
||||||
# else
|
# else
|
||||||
return "libpng version 1.6.28 - January 5, 2017\
|
return "libpng version 1.6.30 - June 28, 2017\
|
||||||
Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\
|
Copyright (c) 1996-1997 Andreas Dilger\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
||||||
|
@ -2832,7 +2832,7 @@ png_pow10(int power)
|
||||||
if (power < 0)
|
if (power < 0)
|
||||||
{
|
{
|
||||||
if (power < DBL_MIN_10_EXP) return 0;
|
if (power < DBL_MIN_10_EXP) return 0;
|
||||||
recip = 1, power = -power;
|
recip = 1; power = -power;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (power > 0)
|
if (power > 0)
|
||||||
|
@ -2910,7 +2910,9 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
double test = png_pow10(exp_b10+1);
|
double test = png_pow10(exp_b10+1);
|
||||||
|
|
||||||
if (test <= DBL_MAX)
|
if (test <= DBL_MAX)
|
||||||
++exp_b10, base = test;
|
{
|
||||||
|
++exp_b10; base = test;
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
@ -2924,7 +2926,10 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
* test on DBL_MAX above.
|
* test on DBL_MAX above.
|
||||||
*/
|
*/
|
||||||
fp /= base;
|
fp /= base;
|
||||||
while (fp >= 1) fp /= 10, ++exp_b10;
|
while (fp >= 1)
|
||||||
|
{
|
||||||
|
fp /= 10; ++exp_b10;
|
||||||
|
}
|
||||||
|
|
||||||
/* Because of the code above fp may, at this point, be
|
/* Because of the code above fp may, at this point, be
|
||||||
* less than .1, this is ok because the code below can
|
* less than .1, this is ok because the code below can
|
||||||
|
@ -2975,7 +2980,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
/* Rounding up to 10, handle that here. */
|
/* Rounding up to 10, handle that here. */
|
||||||
if (czero > 0)
|
if (czero > 0)
|
||||||
{
|
{
|
||||||
--czero, d = 1;
|
--czero; d = 1;
|
||||||
if (cdigits == 0) --clead;
|
if (cdigits == 0) --clead;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2989,7 +2994,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
|
|
||||||
else if (ch == 46)
|
else if (ch == 46)
|
||||||
{
|
{
|
||||||
ch = *--ascii, ++size;
|
ch = *--ascii; ++size;
|
||||||
/* Advance exp_b10 to '1', so that the
|
/* Advance exp_b10 to '1', so that the
|
||||||
* decimal point happens after the
|
* decimal point happens after the
|
||||||
* previous digit.
|
* previous digit.
|
||||||
|
@ -3016,7 +3021,9 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
int ch = *--ascii;
|
int ch = *--ascii;
|
||||||
|
|
||||||
if (ch == 46)
|
if (ch == 46)
|
||||||
++size, exp_b10 = 1;
|
{
|
||||||
|
++size; exp_b10 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Else lost a leading zero, so 'exp_b10' is
|
/* Else lost a leading zero, so 'exp_b10' is
|
||||||
* still ok at (-1)
|
* still ok at (-1)
|
||||||
|
@ -3052,21 +3059,26 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
*/
|
*/
|
||||||
if (exp_b10 != (-1))
|
if (exp_b10 != (-1))
|
||||||
{
|
{
|
||||||
if (exp_b10 == 0) *ascii++ = 46, --size;
|
if (exp_b10 == 0)
|
||||||
|
{
|
||||||
|
*ascii++ = 46; --size;
|
||||||
|
}
|
||||||
/* PLUS 1: TOTAL 4 */
|
/* PLUS 1: TOTAL 4 */
|
||||||
--exp_b10;
|
--exp_b10;
|
||||||
}
|
}
|
||||||
*ascii++ = 48, --czero;
|
*ascii++ = 48; --czero;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exp_b10 != (-1))
|
if (exp_b10 != (-1))
|
||||||
{
|
{
|
||||||
if (exp_b10 == 0)
|
if (exp_b10 == 0)
|
||||||
*ascii++ = 46, --size; /* counted above */
|
{
|
||||||
|
*ascii++ = 46; --size; /* counted above */
|
||||||
|
}
|
||||||
|
|
||||||
--exp_b10;
|
--exp_b10;
|
||||||
}
|
}
|
||||||
*ascii++ = (char)(48 + (int)d), ++cdigits;
|
*ascii++ = (char)(48 + (int)d); ++cdigits;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (cdigits+czero < precision+clead && fp > DBL_MIN);
|
while (cdigits+czero < precision+clead && fp > DBL_MIN);
|
||||||
|
@ -3107,7 +3119,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
*/
|
*/
|
||||||
size -= cdigits;
|
size -= cdigits;
|
||||||
|
|
||||||
*ascii++ = 69, --size; /* 'E': PLUS 1 TOTAL 2+precision */
|
*ascii++ = 69; --size; /* 'E': PLUS 1 TOTAL 2+precision */
|
||||||
|
|
||||||
/* The following use of an unsigned temporary avoids ambiguities in
|
/* The following use of an unsigned temporary avoids ambiguities in
|
||||||
* the signed arithmetic on exp_b10 and permits GCC at least to do
|
* the signed arithmetic on exp_b10 and permits GCC at least to do
|
||||||
|
@ -3118,7 +3130,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size,
|
||||||
|
|
||||||
if (exp_b10 < 0)
|
if (exp_b10 < 0)
|
||||||
{
|
{
|
||||||
*ascii++ = 45, --size; /* '-': PLUS 1 TOTAL 3+precision */
|
*ascii++ = 45; --size; /* '-': PLUS 1 TOTAL 3+precision */
|
||||||
uexp_b10 = (unsigned int)(-exp_b10);
|
uexp_b10 = (unsigned int)(-exp_b10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3185,7 +3197,9 @@ png_ascii_from_fixed(png_const_structrp png_ptr, png_charp ascii,
|
||||||
|
|
||||||
/* Avoid overflow here on the minimum integer. */
|
/* Avoid overflow here on the minimum integer. */
|
||||||
if (fp < 0)
|
if (fp < 0)
|
||||||
*ascii++ = 45, num = (png_uint_32)(-fp);
|
{
|
||||||
|
*ascii++ = 45; num = (png_uint_32)(-fp);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
num = (png_uint_32)fp;
|
num = (png_uint_32)fp;
|
||||||
|
|
||||||
|
@ -3223,7 +3237,10 @@ png_ascii_from_fixed(png_const_structrp png_ptr, png_charp ascii,
|
||||||
* then ndigits digits to first:
|
* then ndigits digits to first:
|
||||||
*/
|
*/
|
||||||
i = 5;
|
i = 5;
|
||||||
while (ndigits < i) *ascii++ = 48, --i;
|
while (ndigits < i)
|
||||||
|
{
|
||||||
|
*ascii++ = 48; --i;
|
||||||
|
}
|
||||||
while (ndigits >= first) *ascii++ = digits[--ndigits];
|
while (ndigits >= first) *ascii++ = digits[--ndigits];
|
||||||
/* Don't output the trailing zeros! */
|
/* Don't output the trailing zeros! */
|
||||||
}
|
}
|
||||||
|
@ -4260,13 +4277,13 @@ png_set_option(png_structrp png_ptr, int option, int onoff)
|
||||||
if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT &&
|
if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT &&
|
||||||
(option & 1) == 0)
|
(option & 1) == 0)
|
||||||
{
|
{
|
||||||
png_uint_32 mask = 3 << option;
|
png_uint_32 mask = 3U << option;
|
||||||
png_uint_32 setting = (2 + (onoff != 0)) << option;
|
png_uint_32 setting = (2U + (onoff != 0)) << option;
|
||||||
png_uint_32 current = png_ptr->options;
|
png_uint_32 current = png_ptr->options;
|
||||||
|
|
||||||
png_ptr->options = (png_uint_32)(((current & ~mask) | setting) & 0xff);
|
png_ptr->options = (png_uint_32)(((current & ~mask) | setting) & 0xff);
|
||||||
|
|
||||||
return (current & mask) >> option;
|
return (int)(current & mask) >> option;
|
||||||
}
|
}
|
||||||
|
|
||||||
return PNG_OPTION_INVALID;
|
return PNG_OPTION_INVALID;
|
||||||
|
@ -4278,7 +4295,7 @@ png_set_option(png_structrp png_ptr, int option, int onoff)
|
||||||
defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
|
defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
|
||||||
/* sRGB conversion tables; these are machine generated with the code in
|
/* sRGB conversion tables; these are machine generated with the code in
|
||||||
* contrib/tools/makesRGB.c. The actual sRGB transfer curve defined in the
|
* contrib/tools/makesRGB.c. The actual sRGB transfer curve defined in the
|
||||||
* specification (see the article at http://en.wikipedia.org/wiki/SRGB)
|
* specification (see the article at https://en.wikipedia.org/wiki/SRGB)
|
||||||
* is used, not the gamma=1/2.2 approximation use elsewhere in libpng.
|
* is used, not the gamma=1/2.2 approximation use elsewhere in libpng.
|
||||||
* The sRGB to linear table is exact (to the nearest 16-bit linear fraction).
|
* The sRGB to linear table is exact (to the nearest 16-bit linear fraction).
|
||||||
* The inverse (linear to sRGB) table has accuracies as follows:
|
* The inverse (linear to sRGB) table has accuracies as follows:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.6.28, January 5, 2017
|
* libpng version 1.6.30, June 28, 2017
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
* Authors and maintainers:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||||
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.6.28, January 5, 2017:
|
* libpng versions 0.97, January 1998, through 1.6.30, June 28, 2017:
|
||||||
* Glenn Randers-Pehrson.
|
* Glenn Randers-Pehrson.
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
*
|
*
|
||||||
* libpng versions 1.0.7, July 1, 2000 through 1.6.28, January 5, 2017 are
|
* libpng versions 1.0.7, July 1, 2000 through 1.6.30, June 28, 2017 are
|
||||||
* Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are
|
* Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are
|
||||||
* derived from libpng-1.0.6, and are distributed according to the same
|
* derived from libpng-1.0.6, and are distributed according to the same
|
||||||
* disclaimer and license as libpng-1.0.6 with the following individuals
|
* disclaimer and license as libpng-1.0.6 with the following individuals
|
||||||
|
@ -38,6 +38,8 @@
|
||||||
* Gilles Vollant
|
* Gilles Vollant
|
||||||
* James Yu
|
* James Yu
|
||||||
* Mandar Sahastrabuddhe
|
* Mandar Sahastrabuddhe
|
||||||
|
* Google Inc.
|
||||||
|
* Vadim Barkov
|
||||||
*
|
*
|
||||||
* and with the following additions to the disclaimer:
|
* and with the following additions to the disclaimer:
|
||||||
*
|
*
|
||||||
|
@ -211,7 +213,7 @@
|
||||||
* ...
|
* ...
|
||||||
* 1.5.28 15 10527 15.so.15.28[.0]
|
* 1.5.28 15 10527 15.so.15.28[.0]
|
||||||
* ...
|
* ...
|
||||||
* 1.6.28 16 10628 16.so.16.28[.0]
|
* 1.6.30 16 10630 16.so.16.30[.0]
|
||||||
*
|
*
|
||||||
* Henceforth the source version will match the shared-library major
|
* Henceforth the source version will match the shared-library major
|
||||||
* and minor numbers; the shared-library major version number will be
|
* and minor numbers; the shared-library major version number will be
|
||||||
|
@ -232,20 +234,20 @@
|
||||||
*
|
*
|
||||||
* See libpng.txt or libpng.3 for more information. The PNG specification
|
* See libpng.txt or libpng.3 for more information. The PNG specification
|
||||||
* is available as a W3C Recommendation and as an ISO Specification,
|
* is available as a W3C Recommendation and as an ISO Specification,
|
||||||
* <http://www.w3.org/TR/2003/REC-PNG-20031110/
|
* <https://www.w3.org/TR/2003/REC-PNG-20031110/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* January 5, 2017
|
* June 28, 2017
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
*
|
*
|
||||||
* This is your unofficial assurance that libpng from version 0.71 and
|
* This is your unofficial assurance that libpng from version 0.71 and
|
||||||
* upward through 1.6.28 are Y2K compliant. It is my belief that
|
* upward through 1.6.30 are Y2K compliant. It is my belief that
|
||||||
* earlier versions were also Y2K compliant.
|
* earlier versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has two year fields. One is a 2-byte unsigned integer
|
* Libpng only has two year fields. One is a 2-byte unsigned integer
|
||||||
|
@ -307,8 +309,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.6.28"
|
#define PNG_LIBPNG_VER_STRING "1.6.30"
|
||||||
#define PNG_HEADER_VERSION_STRING " libpng version 1.6.28 - January 5, 2017\n"
|
#define PNG_HEADER_VERSION_STRING " libpng version 1.6.30 - June 28, 2017\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 16
|
#define PNG_LIBPNG_VER_SONUM 16
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 16
|
#define PNG_LIBPNG_VER_DLLNUM 16
|
||||||
|
@ -316,7 +318,7 @@
|
||||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||||
#define PNG_LIBPNG_VER_MAJOR 1
|
#define PNG_LIBPNG_VER_MAJOR 1
|
||||||
#define PNG_LIBPNG_VER_MINOR 6
|
#define PNG_LIBPNG_VER_MINOR 6
|
||||||
#define PNG_LIBPNG_VER_RELEASE 28
|
#define PNG_LIBPNG_VER_RELEASE 30
|
||||||
|
|
||||||
/* This should match the numeric part of the final component of
|
/* This should match the numeric part of the final component of
|
||||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
||||||
|
@ -347,7 +349,7 @@
|
||||||
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
||||||
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
||||||
*/
|
*/
|
||||||
#define PNG_LIBPNG_VER 10628 /* 1.6.28 */
|
#define PNG_LIBPNG_VER 10630 /* 1.6.30 */
|
||||||
|
|
||||||
/* Library configuration: these options cannot be changed after
|
/* Library configuration: these options cannot be changed after
|
||||||
* the library has been built.
|
* the library has been built.
|
||||||
|
@ -457,7 +459,7 @@ extern "C" {
|
||||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
* do not agree upon the version number.
|
* do not agree upon the version number.
|
||||||
*/
|
*/
|
||||||
typedef char* png_libpng_version_1_6_28;
|
typedef char* png_libpng_version_1_6_30;
|
||||||
|
|
||||||
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
||||||
*
|
*
|
||||||
|
@ -2751,7 +2753,7 @@ typedef struct
|
||||||
*
|
*
|
||||||
* When the simplified API needs to convert between sRGB and linear colorspaces,
|
* When the simplified API needs to convert between sRGB and linear colorspaces,
|
||||||
* the actual sRGB transfer curve defined in the sRGB specification (see the
|
* the actual sRGB transfer curve defined in the sRGB specification (see the
|
||||||
* article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2
|
* article at https://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2
|
||||||
* approximation used elsewhere in libpng.
|
* approximation used elsewhere in libpng.
|
||||||
*
|
*
|
||||||
* When an alpha channel is present it is expected to denote pixel coverage
|
* When an alpha channel is present it is expected to denote pixel coverage
|
||||||
|
@ -3224,7 +3226,10 @@ PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory,
|
||||||
# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */
|
# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */
|
||||||
#endif
|
#endif
|
||||||
#define PNG_IGNORE_ADLER32 8
|
#define PNG_IGNORE_ADLER32 8
|
||||||
#define PNG_OPTION_NEXT 10 /* Next option - numbers must be even */
|
#ifdef PNG_POWERPC_VSX_API_SUPPORTED
|
||||||
|
# define PNG_POWERPC_VSX 10 /* HARDWARE: PowerPC VSX SIMD instructions supported */
|
||||||
|
#endif
|
||||||
|
#define PNG_OPTION_NEXT 12 /* Next option - numbers must be even */
|
||||||
|
|
||||||
/* Return values: NOTE: there are four values and 'off' is *not* zero */
|
/* Return values: NOTE: there are four values and 'off' is *not* zero */
|
||||||
#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */
|
#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.6.28, January 5, 2017
|
* libpng version 1.6.30, June 28, 2017
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* pnglibconf.h - library build configuration */
|
/* pnglibconf.h - library build configuration */
|
||||||
|
|
||||||
/* libpng version 1.6.18, July 23, 2015 */
|
/* libpng version 1.6.30, June 28, 2017 */
|
||||||
|
|
||||||
/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */
|
/* Copyright (c) 1998-2017 Glenn Randers-Pehrson */
|
||||||
|
|
||||||
/* This code is released under the libpng license. */
|
/* This code is released under the libpng license. */
|
||||||
/* For conditions of distribution and use, see the disclaimer */
|
/* For conditions of distribution and use, see the disclaimer */
|
||||||
|
@ -42,6 +42,8 @@
|
||||||
#define PNG_IO_STATE_SUPPORTED
|
#define PNG_IO_STATE_SUPPORTED
|
||||||
#define PNG_MNG_FEATURES_SUPPORTED
|
#define PNG_MNG_FEATURES_SUPPORTED
|
||||||
#define PNG_POINTER_INDEXING_SUPPORTED
|
#define PNG_POINTER_INDEXING_SUPPORTED
|
||||||
|
/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/
|
||||||
|
/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/
|
||||||
#define PNG_PROGRESSIVE_READ_SUPPORTED
|
#define PNG_PROGRESSIVE_READ_SUPPORTED
|
||||||
#define PNG_READ_16BIT_SUPPORTED
|
#define PNG_READ_16BIT_SUPPORTED
|
||||||
#define PNG_READ_ALPHA_MODE_SUPPORTED
|
#define PNG_READ_ALPHA_MODE_SUPPORTED
|
||||||
|
@ -107,6 +109,7 @@
|
||||||
#define PNG_SIMPLIFIED_READ_SUPPORTED
|
#define PNG_SIMPLIFIED_READ_SUPPORTED
|
||||||
#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
|
#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
|
||||||
#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
|
#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
|
||||||
|
#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
|
||||||
#define PNG_SIMPLIFIED_WRITE_SUPPORTED
|
#define PNG_SIMPLIFIED_WRITE_SUPPORTED
|
||||||
#define PNG_STDIO_SUPPORTED
|
#define PNG_STDIO_SUPPORTED
|
||||||
#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
|
#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
@ -183,7 +186,6 @@
|
||||||
/* end of options */
|
/* end of options */
|
||||||
/* settings */
|
/* settings */
|
||||||
#define PNG_API_RULE 0
|
#define PNG_API_RULE 0
|
||||||
#define PNG_COST_SHIFT 3
|
|
||||||
#define PNG_DEFAULT_READ_MACROS 1
|
#define PNG_DEFAULT_READ_MACROS 1
|
||||||
#define PNG_GAMMA_THRESHOLD_FIXED 5000
|
#define PNG_GAMMA_THRESHOLD_FIXED 5000
|
||||||
#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE
|
#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE
|
||||||
|
@ -202,9 +204,8 @@
|
||||||
#define PNG_USER_CHUNK_MALLOC_MAX 8000000
|
#define PNG_USER_CHUNK_MALLOC_MAX 8000000
|
||||||
#define PNG_USER_HEIGHT_MAX 1000000
|
#define PNG_USER_HEIGHT_MAX 1000000
|
||||||
#define PNG_USER_WIDTH_MAX 1000000
|
#define PNG_USER_WIDTH_MAX 1000000
|
||||||
#define PNG_WEIGHT_SHIFT 8
|
|
||||||
#define PNG_ZBUF_SIZE 8192
|
#define PNG_ZBUF_SIZE 8192
|
||||||
#define PNG_ZLIB_VERNUM 0x12a0
|
#define PNG_ZLIB_VERNUM 0x12b0
|
||||||
#define PNG_Z_DEFAULT_COMPRESSION (-1)
|
#define PNG_Z_DEFAULT_COMPRESSION (-1)
|
||||||
#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0
|
#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0
|
||||||
#define PNG_Z_DEFAULT_STRATEGY 1
|
#define PNG_Z_DEFAULT_STRATEGY 1
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
/* pngpriv.h - private declarations for use inside libpng
|
/* pngpriv.h - private declarations for use inside libpng
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.26 [October 20, 2016]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
|
@ -190,6 +190,50 @@
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNG_POWERPC_VSX_OPT
|
||||||
|
# if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__)
|
||||||
|
# define PNG_POWERPC_VSX_OPT 2
|
||||||
|
# else
|
||||||
|
# define PNG_POWERPC_VSX_OPT 0
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNG_INTEL_SSE_OPT
|
||||||
|
# ifdef PNG_INTEL_SSE
|
||||||
|
/* Only check for SSE if the build configuration has been modified to
|
||||||
|
* enable SSE optimizations. This means that these optimizations will
|
||||||
|
* be off by default. See contrib/intel for more details.
|
||||||
|
*/
|
||||||
|
# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \
|
||||||
|
defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \
|
||||||
|
(defined(_M_IX86_FP) && _M_IX86_FP >= 2)
|
||||||
|
# define PNG_INTEL_SSE_OPT 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if PNG_INTEL_SSE_OPT > 0
|
||||||
|
# ifndef PNG_INTEL_SSE_IMPLEMENTATION
|
||||||
|
# if defined(__SSE4_1__) || defined(__AVX__)
|
||||||
|
/* We are not actually using AVX, but checking for AVX is the best
|
||||||
|
way we can detect SSE4.1 and SSSE3 on MSVC.
|
||||||
|
*/
|
||||||
|
# define PNG_INTEL_SSE_IMPLEMENTATION 3
|
||||||
|
# elif defined(__SSSE3__)
|
||||||
|
# define PNG_INTEL_SSE_IMPLEMENTATION 2
|
||||||
|
# elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \
|
||||||
|
(defined(_M_IX86_FP) && _M_IX86_FP >= 2)
|
||||||
|
# define PNG_INTEL_SSE_IMPLEMENTATION 1
|
||||||
|
# else
|
||||||
|
# define PNG_INTEL_SSE_IMPLEMENTATION 0
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if PNG_INTEL_SSE_IMPLEMENTATION > 0
|
||||||
|
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if PNG_MIPS_MSA_OPT > 0
|
#if PNG_MIPS_MSA_OPT > 0
|
||||||
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa
|
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa
|
||||||
# ifndef PNG_MIPS_MSA_IMPLEMENTATION
|
# ifndef PNG_MIPS_MSA_IMPLEMENTATION
|
||||||
|
@ -210,6 +254,11 @@
|
||||||
# endif
|
# endif
|
||||||
#endif /* PNG_MIPS_MSA_OPT > 0 */
|
#endif /* PNG_MIPS_MSA_OPT > 0 */
|
||||||
|
|
||||||
|
#if PNG_POWERPC_VSX_OPT > 0
|
||||||
|
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx
|
||||||
|
# define PNG_POWERPC_VSX_IMPLEMENTATION 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Is this a build of a DLL where compilation of the object modules requires
|
/* Is this a build of a DLL where compilation of the object modules requires
|
||||||
* different preprocessor settings to those required for a simple library? If
|
* different preprocessor settings to those required for a simple library? If
|
||||||
|
@ -417,7 +466,16 @@
|
||||||
static_cast<type>(static_cast<const void*>(value))
|
static_cast<type>(static_cast<const void*>(value))
|
||||||
#else
|
#else
|
||||||
# define png_voidcast(type, value) (value)
|
# define png_voidcast(type, value) (value)
|
||||||
# define png_constcast(type, value) ((type)(value))
|
# ifdef _WIN64
|
||||||
|
# ifdef __GNUC__
|
||||||
|
typedef unsigned long long png_ptruint;
|
||||||
|
# else
|
||||||
|
typedef unsigned __int64 png_ptruint;
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
typedef unsigned long png_ptruint;
|
||||||
|
# endif
|
||||||
|
# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value))
|
||||||
# define png_aligncast(type, value) ((void*)(value))
|
# define png_aligncast(type, value) ((void*)(value))
|
||||||
# define png_aligncastconst(type, value) ((const void*)(value))
|
# define png_aligncastconst(type, value) ((const void*)(value))
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -1256,6 +1314,38 @@ PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop
|
||||||
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if PNG_POWERPC_VSX_OPT > 0
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_vsx,(png_row_infop row_info,
|
||||||
|
png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_vsx,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if PNG_INTEL_SSE_IMPLEMENTATION > 0
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop
|
||||||
|
row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Choose the best filter to use and filter the row data */
|
/* Choose the best filter to use and filter the row data */
|
||||||
PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr,
|
PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr,
|
||||||
png_row_infop row_info),PNG_EMPTY);
|
png_row_infop row_info),PNG_EMPTY);
|
||||||
|
@ -1991,6 +2081,11 @@ PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon,
|
||||||
PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa,
|
PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa,
|
||||||
(png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
|
(png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
# if PNG_INTEL_SSE_IMPLEMENTATION > 0
|
||||||
|
PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2,
|
||||||
|
(png_structp png_ptr, unsigned int bpp), PNG_EMPTY);
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr,
|
PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.24 [August 4, 2016]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
|
@ -2934,7 +2934,7 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
|
||||||
* using the equation given in Poynton's ColorFAQ of 1998-01-04 at
|
* using the equation given in Poynton's ColorFAQ of 1998-01-04 at
|
||||||
* <http://www.inforamp.net/~poynton/> (THIS LINK IS DEAD June 2008 but
|
* <http://www.inforamp.net/~poynton/> (THIS LINK IS DEAD June 2008 but
|
||||||
* versions dated 1998 through November 2002 have been archived at
|
* versions dated 1998 through November 2002 have been archived at
|
||||||
* http://web.archive.org/web/20000816232553/http://www.inforamp.net/
|
* https://web.archive.org/web/20000816232553/www.inforamp.net/
|
||||||
* ~poynton/notes/colour_and_gamma/ColorFAQ.txt )
|
* ~poynton/notes/colour_and_gamma/ColorFAQ.txt )
|
||||||
* Charles Poynton poynton at poynton.com
|
* Charles Poynton poynton at poynton.com
|
||||||
*
|
*
|
||||||
|
@ -4302,7 +4302,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
|
||||||
if (num_trans > 0)
|
if (num_trans > 0)
|
||||||
{
|
{
|
||||||
sp = row + (png_size_t)row_width - 1;
|
sp = row + (png_size_t)row_width - 1;
|
||||||
dp = row + (png_size_t)(row_width << 2) - 1;
|
dp = row + ((png_size_t)row_width << 2) - 1;
|
||||||
|
|
||||||
for (i = 0; i < row_width; i++)
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
|
@ -4463,7 +4463,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
||||||
{
|
{
|
||||||
gray = gray & 0xff;
|
gray = gray & 0xff;
|
||||||
sp = row + (png_size_t)row_width - 1;
|
sp = row + (png_size_t)row_width - 1;
|
||||||
dp = row + (png_size_t)(row_width << 1) - 1;
|
dp = row + ((png_size_t)row_width << 1) - 1;
|
||||||
|
|
||||||
for (i = 0; i < row_width; i++)
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
|
@ -4519,7 +4519,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
||||||
png_byte green = (png_byte)(trans_color->green & 0xff);
|
png_byte green = (png_byte)(trans_color->green & 0xff);
|
||||||
png_byte blue = (png_byte)(trans_color->blue & 0xff);
|
png_byte blue = (png_byte)(trans_color->blue & 0xff);
|
||||||
sp = row + (png_size_t)row_info->rowbytes - 1;
|
sp = row + (png_size_t)row_info->rowbytes - 1;
|
||||||
dp = row + (png_size_t)(row_width << 2) - 1;
|
dp = row + ((png_size_t)row_width << 2) - 1;
|
||||||
for (i = 0; i < row_width; i++)
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
if (*(sp - 2) == red && *(sp - 1) == green && *(sp) == blue)
|
if (*(sp - 2) == red && *(sp - 1) == green && *(sp) == blue)
|
||||||
|
@ -4542,7 +4542,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
||||||
png_byte green_low = (png_byte)(trans_color->green & 0xff);
|
png_byte green_low = (png_byte)(trans_color->green & 0xff);
|
||||||
png_byte blue_low = (png_byte)(trans_color->blue & 0xff);
|
png_byte blue_low = (png_byte)(trans_color->blue & 0xff);
|
||||||
sp = row + row_info->rowbytes - 1;
|
sp = row + row_info->rowbytes - 1;
|
||||||
dp = row + (png_size_t)(row_width << 3) - 1;
|
dp = row + ((png_size_t)row_width << 3) - 1;
|
||||||
for (i = 0; i < row_width; i++)
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
if (*(sp - 5) == red_high &&
|
if (*(sp - 5) == red_high &&
|
||||||
|
@ -4601,7 +4601,9 @@ png_do_expand_16(png_row_infop row_info, png_bytep row)
|
||||||
png_byte *sp = row + row_info->rowbytes; /* source, last byte + 1 */
|
png_byte *sp = row + row_info->rowbytes; /* source, last byte + 1 */
|
||||||
png_byte *dp = sp + row_info->rowbytes; /* destination, end + 1 */
|
png_byte *dp = sp + row_info->rowbytes; /* destination, end + 1 */
|
||||||
while (dp > sp)
|
while (dp > sp)
|
||||||
dp[-2] = dp[-1] = *--sp, dp -= 2;
|
{
|
||||||
|
dp[-2] = dp[-1] = *--sp; dp -= 2;
|
||||||
|
}
|
||||||
|
|
||||||
row_info->rowbytes *= 2;
|
row_info->rowbytes *= 2;
|
||||||
row_info->bit_depth = 16;
|
row_info->bit_depth = 16;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.27 [January 5, 2017]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
|
@ -418,7 +418,7 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
||||||
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
|
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ZLIB_VERNUM >= 0x1281 && \
|
#if ZLIB_VERNUM >= 0x1290 && \
|
||||||
defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32)
|
defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32)
|
||||||
if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON)
|
if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON)
|
||||||
/* Turn off validation of the ADLER32 checksum in IDAT chunks */
|
/* Turn off validation of the ADLER32 checksum in IDAT chunks */
|
||||||
|
@ -2537,6 +2537,9 @@ png_handle_zTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
|
||||||
if ((png_ptr->mode & PNG_HAVE_IDAT) != 0)
|
if ((png_ptr->mode & PNG_HAVE_IDAT) != 0)
|
||||||
png_ptr->mode |= PNG_AFTER_IDAT;
|
png_ptr->mode |= PNG_AFTER_IDAT;
|
||||||
|
|
||||||
|
/* Note, "length" is sufficient here; we won't be adding
|
||||||
|
* a null terminator later.
|
||||||
|
*/
|
||||||
buffer = png_read_buffer(png_ptr, length, 2/*silent*/);
|
buffer = png_read_buffer(png_ptr, length, 2/*silent*/);
|
||||||
|
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
|
@ -3377,7 +3380,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
||||||
*/
|
*/
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
dp[0] = sp[0], dp[1] = sp[1];
|
dp[0] = sp[0]; dp[1] = sp[1];
|
||||||
|
|
||||||
if (row_width <= bytes_to_jump)
|
if (row_width <= bytes_to_jump)
|
||||||
return;
|
return;
|
||||||
|
@ -3398,7 +3401,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
||||||
*/
|
*/
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
dp[0] = sp[0], dp[1] = sp[1], dp[2] = sp[2];
|
dp[0] = sp[0]; dp[1] = sp[1]; dp[2] = sp[2];
|
||||||
|
|
||||||
if (row_width <= bytes_to_jump)
|
if (row_width <= bytes_to_jump)
|
||||||
return;
|
return;
|
||||||
|
@ -3887,7 +3890,10 @@ png_read_filter_row_paeth_1byte_pixel(png_row_infop row_info, png_bytep row,
|
||||||
/* Find the best predictor, the least of pa, pb, pc favoring the earlier
|
/* Find the best predictor, the least of pa, pb, pc favoring the earlier
|
||||||
* ones in the case of a tie.
|
* ones in the case of a tie.
|
||||||
*/
|
*/
|
||||||
if (pb < pa) pa = pb, a = b;
|
if (pb < pa)
|
||||||
|
{
|
||||||
|
pa = pb; a = b;
|
||||||
|
}
|
||||||
if (pc < pa) a = c;
|
if (pc < pa) a = c;
|
||||||
|
|
||||||
/* Calculate the current pixel in a, and move the previous row pixel to c
|
/* Calculate the current pixel in a, and move the previous row pixel to c
|
||||||
|
@ -3939,7 +3945,10 @@ png_read_filter_row_paeth_multibyte_pixel(png_row_infop row_info, png_bytep row,
|
||||||
pc = (p + pc) < 0 ? -(p + pc) : p + pc;
|
pc = (p + pc) < 0 ? -(p + pc) : p + pc;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pb < pa) pa = pb, a = b;
|
if (pb < pa)
|
||||||
|
{
|
||||||
|
pa = pb; a = b;
|
||||||
|
}
|
||||||
if (pc < pa) a = c;
|
if (pc < pa) a = c;
|
||||||
|
|
||||||
a += *row;
|
a += *row;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
/* pngset.c - storage of image information into info struct
|
/* pngset.c - storage of image information into info struct
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.26 [October 20, 2016]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
|
@ -1102,8 +1102,9 @@ png_set_sPLT(png_const_structrp png_ptr,
|
||||||
info_ptr->valid |= PNG_INFO_sPLT;
|
info_ptr->valid |= PNG_INFO_sPLT;
|
||||||
++(info_ptr->splt_palettes_num);
|
++(info_ptr->splt_palettes_num);
|
||||||
++np;
|
++np;
|
||||||
|
++entries;
|
||||||
}
|
}
|
||||||
while (++entries, --nentries);
|
while (--nentries);
|
||||||
|
|
||||||
if (nentries > 0)
|
if (nentries > 0)
|
||||||
png_chunk_report(png_ptr, "sPLT out of memory", PNG_CHUNK_WRITE_ERROR);
|
png_chunk_report(png_ptr, "sPLT out of memory", PNG_CHUNK_WRITE_ERROR);
|
||||||
|
@ -1696,14 +1697,16 @@ png_check_keyword(png_structrp png_ptr, png_const_charp key, png_bytep new_key)
|
||||||
png_byte ch = (png_byte)*key++;
|
png_byte ch = (png_byte)*key++;
|
||||||
|
|
||||||
if ((ch > 32 && ch <= 126) || (ch >= 161 /*&& ch <= 255*/))
|
if ((ch > 32 && ch <= 126) || (ch >= 161 /*&& ch <= 255*/))
|
||||||
*new_key++ = ch, ++key_len, space = 0;
|
{
|
||||||
|
*new_key++ = ch; ++key_len; space = 0;
|
||||||
|
}
|
||||||
|
|
||||||
else if (space == 0)
|
else if (space == 0)
|
||||||
{
|
{
|
||||||
/* A space or an invalid character when one wasn't seen immediately
|
/* A space or an invalid character when one wasn't seen immediately
|
||||||
* before; output just a space.
|
* before; output just a space.
|
||||||
*/
|
*/
|
||||||
*new_key++ = 32, ++key_len, space = 1;
|
*new_key++ = 32; ++key_len; space = 1;
|
||||||
|
|
||||||
/* If the character was not a space then it is invalid. */
|
/* If the character was not a space then it is invalid. */
|
||||||
if (ch != 32)
|
if (ch != 32)
|
||||||
|
@ -1716,7 +1719,7 @@ png_check_keyword(png_structrp png_ptr, png_const_charp key, png_bytep new_key)
|
||||||
|
|
||||||
if (key_len > 0 && space != 0) /* trailing space */
|
if (key_len > 0 && space != 0) /* trailing space */
|
||||||
{
|
{
|
||||||
--key_len, --new_key;
|
--key_len; --new_key;
|
||||||
if (bad_character == 0)
|
if (bad_character == 0)
|
||||||
bad_character = 32;
|
bad_character = 32;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.26 [October 20, 2016]
|
* Last changed in libpng 1.6.30 [(PENDING RELEASE)]
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
|
@ -514,11 +514,15 @@ png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
|
||||||
if (at_start != 0) /* Skip initial filler */
|
if (at_start != 0) /* Skip initial filler */
|
||||||
++sp;
|
++sp;
|
||||||
else /* Skip initial channel and, for sp, the filler */
|
else /* Skip initial channel and, for sp, the filler */
|
||||||
sp += 2, ++dp;
|
{
|
||||||
|
sp += 2; ++dp;
|
||||||
|
}
|
||||||
|
|
||||||
/* For a 1 pixel wide image there is nothing to do */
|
/* For a 1 pixel wide image there is nothing to do */
|
||||||
while (sp < ep)
|
while (sp < ep)
|
||||||
*dp++ = *sp, sp += 2;
|
{
|
||||||
|
*dp++ = *sp; sp += 2;
|
||||||
|
}
|
||||||
|
|
||||||
row_info->pixel_depth = 8;
|
row_info->pixel_depth = 8;
|
||||||
}
|
}
|
||||||
|
@ -528,10 +532,14 @@ png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
|
||||||
if (at_start != 0) /* Skip initial filler */
|
if (at_start != 0) /* Skip initial filler */
|
||||||
sp += 2;
|
sp += 2;
|
||||||
else /* Skip initial channel and, for sp, the filler */
|
else /* Skip initial channel and, for sp, the filler */
|
||||||
sp += 4, dp += 2;
|
{
|
||||||
|
sp += 4; dp += 2;
|
||||||
|
}
|
||||||
|
|
||||||
while (sp < ep)
|
while (sp < ep)
|
||||||
*dp++ = *sp++, *dp++ = *sp, sp += 3;
|
{
|
||||||
|
*dp++ = *sp++; *dp++ = *sp; sp += 3;
|
||||||
|
}
|
||||||
|
|
||||||
row_info->pixel_depth = 16;
|
row_info->pixel_depth = 16;
|
||||||
}
|
}
|
||||||
|
@ -554,11 +562,15 @@ png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
|
||||||
if (at_start != 0) /* Skip initial filler */
|
if (at_start != 0) /* Skip initial filler */
|
||||||
++sp;
|
++sp;
|
||||||
else /* Skip initial channels and, for sp, the filler */
|
else /* Skip initial channels and, for sp, the filler */
|
||||||
sp += 4, dp += 3;
|
{
|
||||||
|
sp += 4; dp += 3;
|
||||||
|
}
|
||||||
|
|
||||||
/* Note that the loop adds 3 to dp and 4 to sp each time. */
|
/* Note that the loop adds 3 to dp and 4 to sp each time. */
|
||||||
while (sp < ep)
|
while (sp < ep)
|
||||||
*dp++ = *sp++, *dp++ = *sp++, *dp++ = *sp, sp += 2;
|
{
|
||||||
|
*dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp; sp += 2;
|
||||||
|
}
|
||||||
|
|
||||||
row_info->pixel_depth = 24;
|
row_info->pixel_depth = 24;
|
||||||
}
|
}
|
||||||
|
@ -568,14 +580,16 @@ png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
|
||||||
if (at_start != 0) /* Skip initial filler */
|
if (at_start != 0) /* Skip initial filler */
|
||||||
sp += 2;
|
sp += 2;
|
||||||
else /* Skip initial channels and, for sp, the filler */
|
else /* Skip initial channels and, for sp, the filler */
|
||||||
sp += 8, dp += 6;
|
{
|
||||||
|
sp += 8; dp += 6;
|
||||||
|
}
|
||||||
|
|
||||||
while (sp < ep)
|
while (sp < ep)
|
||||||
{
|
{
|
||||||
/* Copy 6 bytes, skip 2 */
|
/* Copy 6 bytes, skip 2 */
|
||||||
*dp++ = *sp++, *dp++ = *sp++;
|
*dp++ = *sp++; *dp++ = *sp++;
|
||||||
*dp++ = *sp++, *dp++ = *sp++;
|
*dp++ = *sp++; *dp++ = *sp++;
|
||||||
*dp++ = *sp++, *dp++ = *sp, sp += 3;
|
*dp++ = *sp++; *dp++ = *sp; sp += 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
row_info->pixel_depth = 48;
|
row_info->pixel_depth = 48;
|
||||||
|
|
|
@ -675,6 +675,7 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height,
|
||||||
int interlace_type)
|
int interlace_type)
|
||||||
{
|
{
|
||||||
png_byte buf[13]; /* Buffer to store the IHDR info */
|
png_byte buf[13]; /* Buffer to store the IHDR info */
|
||||||
|
int is_invalid_depth;
|
||||||
|
|
||||||
png_debug(1, "in png_write_IHDR");
|
png_debug(1, "in png_write_IHDR");
|
||||||
|
|
||||||
|
@ -700,11 +701,11 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PNG_COLOR_TYPE_RGB:
|
case PNG_COLOR_TYPE_RGB:
|
||||||
|
is_invalid_depth = (bit_depth != 8);
|
||||||
#ifdef PNG_WRITE_16BIT_SUPPORTED
|
#ifdef PNG_WRITE_16BIT_SUPPORTED
|
||||||
if (bit_depth != 8 && bit_depth != 16)
|
is_invalid_depth = (is_invalid_depth && bit_depth != 16);
|
||||||
#else
|
|
||||||
if (bit_depth != 8)
|
|
||||||
#endif
|
#endif
|
||||||
|
if (is_invalid_depth)
|
||||||
png_error(png_ptr, "Invalid bit depth for RGB image");
|
png_error(png_ptr, "Invalid bit depth for RGB image");
|
||||||
|
|
||||||
png_ptr->channels = 3;
|
png_ptr->channels = 3;
|
||||||
|
@ -726,18 +727,22 @@ png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PNG_COLOR_TYPE_GRAY_ALPHA:
|
case PNG_COLOR_TYPE_GRAY_ALPHA:
|
||||||
if (bit_depth != 8 && bit_depth != 16)
|
is_invalid_depth = (bit_depth != 8);
|
||||||
|
#ifdef PNG_WRITE_16BIT_SUPPORTED
|
||||||
|
is_invalid_depth = (is_invalid_depth && bit_depth != 16);
|
||||||
|
#endif
|
||||||
|
if (is_invalid_depth)
|
||||||
png_error(png_ptr, "Invalid bit depth for grayscale+alpha image");
|
png_error(png_ptr, "Invalid bit depth for grayscale+alpha image");
|
||||||
|
|
||||||
png_ptr->channels = 2;
|
png_ptr->channels = 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PNG_COLOR_TYPE_RGB_ALPHA:
|
case PNG_COLOR_TYPE_RGB_ALPHA:
|
||||||
|
is_invalid_depth = (bit_depth != 8);
|
||||||
#ifdef PNG_WRITE_16BIT_SUPPORTED
|
#ifdef PNG_WRITE_16BIT_SUPPORTED
|
||||||
if (bit_depth != 8 && bit_depth != 16)
|
is_invalid_depth = (is_invalid_depth && bit_depth != 16);
|
||||||
#else
|
|
||||||
if (bit_depth != 8)
|
|
||||||
#endif
|
#endif
|
||||||
|
if (is_invalid_depth)
|
||||||
png_error(png_ptr, "Invalid bit depth for RGBA image");
|
png_error(png_ptr, "Invalid bit depth for RGBA image");
|
||||||
|
|
||||||
png_ptr->channels = 4;
|
png_ptr->channels = 4;
|
||||||
|
@ -998,7 +1003,8 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
|
||||||
optimize_cmf(data, png_image_size(png_ptr));
|
optimize_cmf(data, png_image_size(png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_write_complete_chunk(png_ptr, png_IDAT, data, size);
|
if (size > 0)
|
||||||
|
png_write_complete_chunk(png_ptr, png_IDAT, data, size);
|
||||||
png_ptr->mode |= PNG_HAVE_IDAT;
|
png_ptr->mode |= PNG_HAVE_IDAT;
|
||||||
|
|
||||||
png_ptr->zstream.next_out = data;
|
png_ptr->zstream.next_out = data;
|
||||||
|
@ -1044,7 +1050,8 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
|
||||||
optimize_cmf(data, png_image_size(png_ptr));
|
optimize_cmf(data, png_image_size(png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_write_complete_chunk(png_ptr, png_IDAT, data, size);
|
if (size > 0)
|
||||||
|
png_write_complete_chunk(png_ptr, png_IDAT, data, size);
|
||||||
png_ptr->zstream.avail_out = 0;
|
png_ptr->zstream.avail_out = 0;
|
||||||
png_ptr->zstream.next_out = NULL;
|
png_ptr->zstream.next_out = NULL;
|
||||||
png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT;
|
png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
ZLIB DATA COMPRESSION LIBRARY
|
ZLIB DATA COMPRESSION LIBRARY
|
||||||
|
|
||||||
zlib 1.2.8 is a general purpose data compression library. All the code is
|
zlib 1.2.11 is a general purpose data compression library. All the code is
|
||||||
thread safe. The data format used by the zlib library is described by RFCs
|
thread safe. The data format used by the zlib library is described by RFCs
|
||||||
(Request for Comments) 1950 to 1952 in the files
|
(Request for Comments) 1950 to 1952 in the files
|
||||||
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
|
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
|
||||||
|
@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
|
||||||
issue of Dr. Dobb's Journal; a copy of the article is available at
|
issue of Dr. Dobb's Journal; a copy of the article is available at
|
||||||
http://marknelson.us/1997/01/01/zlib-engine/ .
|
http://marknelson.us/1997/01/01/zlib-engine/ .
|
||||||
|
|
||||||
The changes made in version 1.2.8 are documented in the file ChangeLog.
|
The changes made in version 1.2.11 are documented in the file ChangeLog.
|
||||||
|
|
||||||
Unsupported third party contributions are provided in directory contrib/ .
|
Unsupported third party contributions are provided in directory contrib/ .
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ Acknowledgments:
|
||||||
|
|
||||||
Copyright notice:
|
Copyright notice:
|
||||||
|
|
||||||
(C) 1995-2013 Jean-loup Gailly and Mark Adler
|
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
|
|
@ -268,8 +268,8 @@ local unsigned long crc32_little(
|
||||||
const unsigned char FAR *buf,
|
const unsigned char FAR *buf,
|
||||||
z_size_t len)
|
z_size_t len)
|
||||||
{
|
{
|
||||||
register z_crc_t c;
|
z_crc_t c;
|
||||||
register const z_crc_t FAR *buf4;
|
const z_crc_t FAR *buf4;
|
||||||
|
|
||||||
c = (z_crc_t)crc;
|
c = (z_crc_t)crc;
|
||||||
c = ~c;
|
c = ~c;
|
||||||
|
@ -308,8 +308,8 @@ local unsigned long crc32_big(
|
||||||
const unsigned char FAR *buf,
|
const unsigned char FAR *buf,
|
||||||
z_size_t len)
|
z_size_t len)
|
||||||
{
|
{
|
||||||
register z_crc_t c;
|
z_crc_t c;
|
||||||
register const z_crc_t FAR *buf4;
|
const z_crc_t FAR *buf4;
|
||||||
|
|
||||||
c = ZSWAP32((z_crc_t)crc);
|
c = ZSWAP32((z_crc_t)crc);
|
||||||
c = ~c;
|
c = ~c;
|
||||||
|
|
|
@ -50,9 +50,10 @@
|
||||||
/* @(#) $Id$ */
|
/* @(#) $Id$ */
|
||||||
|
|
||||||
#include "deflate.h"
|
#include "deflate.h"
|
||||||
|
#define register
|
||||||
|
|
||||||
const char deflate_copyright[] =
|
const char deflate_copyright[] =
|
||||||
" deflate 1.2.10 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
|
" deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
|
||||||
/*
|
/*
|
||||||
If you use the zlib library in a product, an acknowledgment is welcome
|
If you use the zlib library in a product, an acknowledgment is welcome
|
||||||
in the documentation of your product. If for some reason you cannot
|
in the documentation of your product. If for some reason you cannot
|
||||||
|
@ -585,7 +586,8 @@ int ZEXPORT deflateParams(
|
||||||
}
|
}
|
||||||
func = configuration_table[s->level].func;
|
func = configuration_table[s->level].func;
|
||||||
|
|
||||||
if ((strategy != s->strategy || func != configuration_table[level].func)) {
|
if ((strategy != s->strategy || func != configuration_table[level].func) &&
|
||||||
|
s->high_water) {
|
||||||
/* Flush the last buffer: */
|
/* Flush the last buffer: */
|
||||||
int err = deflate(strm, Z_BLOCK);
|
int err = deflate(strm, Z_BLOCK);
|
||||||
if (err == Z_STREAM_ERROR)
|
if (err == Z_STREAM_ERROR)
|
||||||
|
@ -1671,8 +1673,6 @@ local block_state deflate_stored(
|
||||||
len = left + s->strm->avail_in; /* limit len to the input */
|
len = left + s->strm->avail_in; /* limit len to the input */
|
||||||
if (len > have)
|
if (len > have)
|
||||||
len = have; /* limit len to the output */
|
len = have; /* limit len to the output */
|
||||||
if (left > len)
|
|
||||||
left = len; /* limit window pull to len */
|
|
||||||
|
|
||||||
/* If the stored block would be less than min_block in length, or if
|
/* If the stored block would be less than min_block in length, or if
|
||||||
* unable to copy all of the available input when flushing, then try
|
* unable to copy all of the available input when flushing, then try
|
||||||
|
@ -1681,13 +1681,13 @@ local block_state deflate_stored(
|
||||||
*/
|
*/
|
||||||
if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
|
if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
|
||||||
flush == Z_NO_FLUSH ||
|
flush == Z_NO_FLUSH ||
|
||||||
len - left != s->strm->avail_in))
|
len != left + s->strm->avail_in))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Make a dummy stored block in pending to get the header bytes,
|
/* Make a dummy stored block in pending to get the header bytes,
|
||||||
* including any pending bits. This also updates the debugging counts.
|
* including any pending bits. This also updates the debugging counts.
|
||||||
*/
|
*/
|
||||||
last = flush == Z_FINISH && len - left == s->strm->avail_in ? 1 : 0;
|
last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0;
|
||||||
_tr_stored_block(s, (char *)0, 0L, last);
|
_tr_stored_block(s, (char *)0, 0L, last);
|
||||||
|
|
||||||
/* Replace the lengths in the dummy stored block with len. */
|
/* Replace the lengths in the dummy stored block with len. */
|
||||||
|
@ -1699,14 +1699,16 @@ local block_state deflate_stored(
|
||||||
/* Write the stored block header bytes. */
|
/* Write the stored block header bytes. */
|
||||||
flush_pending(s->strm);
|
flush_pending(s->strm);
|
||||||
|
|
||||||
/* Update debugging counts for the data about to be copied. */
|
|
||||||
#ifdef ZLIB_DEBUG
|
#ifdef ZLIB_DEBUG
|
||||||
|
/* Update debugging counts for the data about to be copied. */
|
||||||
s->compressed_len += len << 3;
|
s->compressed_len += len << 3;
|
||||||
s->bits_sent += len << 3;
|
s->bits_sent += len << 3;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Copy uncompressed bytes from the window to next_out. */
|
/* Copy uncompressed bytes from the window to next_out. */
|
||||||
if (left) {
|
if (left) {
|
||||||
|
if (left > len)
|
||||||
|
left = len;
|
||||||
zmemcpy(s->strm->next_out, s->window + s->block_start, left);
|
zmemcpy(s->strm->next_out, s->window + s->block_start, left);
|
||||||
s->strm->next_out += left;
|
s->strm->next_out += left;
|
||||||
s->strm->avail_out -= left;
|
s->strm->avail_out -= left;
|
||||||
|
@ -1756,6 +1758,8 @@ local block_state deflate_stored(
|
||||||
s->block_start = s->strstart;
|
s->block_start = s->strstart;
|
||||||
s->insert += MIN(used, s->w_size - s->insert);
|
s->insert += MIN(used, s->w_size - s->insert);
|
||||||
}
|
}
|
||||||
|
if (s->high_water < s->strstart)
|
||||||
|
s->high_water = s->strstart;
|
||||||
|
|
||||||
/* If the last block was written to next_out, then done. */
|
/* If the last block was written to next_out, then done. */
|
||||||
if (last)
|
if (last)
|
||||||
|
@ -1783,6 +1787,8 @@ local block_state deflate_stored(
|
||||||
read_buf(s->strm, s->window + s->strstart, have);
|
read_buf(s->strm, s->window + s->strstart, have);
|
||||||
s->strstart += have;
|
s->strstart += have;
|
||||||
}
|
}
|
||||||
|
if (s->high_water < s->strstart)
|
||||||
|
s->high_water = s->strstart;
|
||||||
|
|
||||||
/* There was not enough avail_out to write a complete worthy or flushed
|
/* There was not enough avail_out to write a complete worthy or flushed
|
||||||
* stored block to next_out. Write a stored block to pending instead, if we
|
* stored block to next_out. Write a stored block to pending instead, if we
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* gzlib.c -- zlib functions common to reading and writing gzip files
|
/* gzlib.c -- zlib functions common to reading and writing gzip files
|
||||||
* Copyright (C) 2004, 2010, 2011, 2012, 2013, 2016 Mark Adler
|
* Copyright (C) 2004-2017 Mark Adler
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* gzwrite.c -- zlib functions for writing gzip files
|
/* gzwrite.c -- zlib functions for writing gzip files
|
||||||
* Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
|
* Copyright (C) 2004-2017 Mark Adler
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* inffast.c -- fast decoding
|
/* inffast.c -- fast decoding
|
||||||
* Copyright (C) 1995-2008, 2010, 2013, 2016 Mark Adler
|
* Copyright (C) 1995-2017 Mark Adler
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#define MAXBITS 15
|
#define MAXBITS 15
|
||||||
|
|
||||||
const char inflate_copyright[] =
|
const char inflate_copyright[] =
|
||||||
" inflate 1.2.10 Copyright 1995-2017 Mark Adler ";
|
" inflate 1.2.11 Copyright 1995-2017 Mark Adler ";
|
||||||
/*
|
/*
|
||||||
If you use the zlib library in a product, an acknowledgment is welcome
|
If you use the zlib library in a product, an acknowledgment is welcome
|
||||||
in the documentation of your product. If for some reason you cannot
|
in the documentation of your product. If for some reason you cannot
|
||||||
|
@ -62,7 +62,7 @@ int ZLIB_INTERNAL inflate_table(
|
||||||
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
|
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
|
||||||
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
|
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
|
||||||
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
|
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
|
||||||
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 192, 202};
|
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202};
|
||||||
static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
|
static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
|
||||||
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
|
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
|
||||||
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
|
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* trees.c -- output deflated data using Huffman coding
|
/* trees.c -- output deflated data using Huffman coding
|
||||||
* Copyright (C) 1995-2016 Jean-loup Gailly
|
* Copyright (C) 1995-2017 Jean-loup Gailly
|
||||||
* detect_data_type() function provided freely by Cosmin Truta, 2006
|
* detect_data_type() function provided freely by Cosmin Truta, 2006
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
@ -40,6 +40,8 @@
|
||||||
# include <ctype.h>
|
# include <ctype.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define register
|
||||||
|
|
||||||
/* ===========================================================================
|
/* ===========================================================================
|
||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
|
@ -908,7 +910,7 @@ void ZLIB_INTERNAL _tr_align(
|
||||||
|
|
||||||
/* ===========================================================================
|
/* ===========================================================================
|
||||||
* Determine the best encoding for the current block: dynamic trees, static
|
* Determine the best encoding for the current block: dynamic trees, static
|
||||||
* trees or store, and output the encoded block to the zip file.
|
* trees or store, and write out the encoded block.
|
||||||
*/
|
*/
|
||||||
void ZLIB_INTERNAL _tr_flush_block(
|
void ZLIB_INTERNAL _tr_flush_block(
|
||||||
deflate_state *s,
|
deflate_state *s,
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#ifndef ZCONF_H
|
#ifndef ZCONF_H
|
||||||
#define ZCONF_H
|
#define ZCONF_H
|
||||||
|
|
||||||
/* Added by SA: 2017-01-15 */
|
/* Added by SA: 2017-07-09 */
|
||||||
#if defined(BSPF_UNIX) || defined(BSPF_MAC_OSX)
|
#if defined(BSPF_UNIX) || defined(BSPF_MAC_OSX)
|
||||||
#define HAVE_UNISTD_H
|
#define HAVE_UNISTD_H
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||||
version 1.2.10, January 2nd, 2017
|
version 1.2.11, January 15th, 2017
|
||||||
|
|
||||||
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
|
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
|
@ -37,11 +37,11 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ZLIB_VERSION "1.2.10"
|
#define ZLIB_VERSION "1.2.11"
|
||||||
#define ZLIB_VERNUM 0x12a0
|
#define ZLIB_VERNUM 0x12b0
|
||||||
#define ZLIB_VER_MAJOR 1
|
#define ZLIB_VER_MAJOR 1
|
||||||
#define ZLIB_VER_MINOR 2
|
#define ZLIB_VER_MINOR 2
|
||||||
#define ZLIB_VER_REVISION 10
|
#define ZLIB_VER_REVISION 11
|
||||||
#define ZLIB_VER_SUBREVISION 0
|
#define ZLIB_VER_SUBREVISION 0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -712,10 +712,11 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
|
||||||
used to switch between compression and straight copy of the input data, or
|
used to switch between compression and straight copy of the input data, or
|
||||||
to switch to a different kind of input data requiring a different strategy.
|
to switch to a different kind of input data requiring a different strategy.
|
||||||
If the compression approach (which is a function of the level) or the
|
If the compression approach (which is a function of the level) or the
|
||||||
strategy is changed, then the input available so far is compressed with the
|
strategy is changed, and if any input has been consumed in a previous
|
||||||
old level and strategy using deflate(strm, Z_BLOCK). There are three
|
deflate() call, then the input available so far is compressed with the old
|
||||||
approaches for the compression levels 0, 1..3, and 4..9 respectively. The
|
level and strategy using deflate(strm, Z_BLOCK). There are three approaches
|
||||||
new level and strategy will take effect at the next call of deflate().
|
for the compression levels 0, 1..3, and 4..9 respectively. The new level
|
||||||
|
and strategy will take effect at the next call of deflate().
|
||||||
|
|
||||||
If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
|
If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
|
||||||
not have enough output space to complete, then the parameter change will not
|
not have enough output space to complete, then the parameter change will not
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* zutil.c -- target dependent utility functions for the compression library
|
/* zutil.c -- target dependent utility functions for the compression library
|
||||||
* Copyright (C) 1995-2005, 2010, 2011, 2012, 2016 Jean-loup Gailly
|
* Copyright (C) 1995-2017 Jean-loup Gailly
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue