Commit Graph

64 Commits

Author SHA1 Message Date
Mark Adler
f8719f5ae5 Speed up software CRC-32 computation by a factor of 1.5 to 3.
Use the interleaved method of Kadatch and Jenkins in order to make
use of pipelined instructions through multiple ALUs in a single
core. This also speeds up and simplifies the combination of CRCs,
and updates the functions to pre-calculate and use an operator for
CRC combination.
2018-12-26 12:26:52 -08:00
Mark Adler
3c46f5ddb5 Avoid the use of ptrdiff_t.
This isn't the right type anyway to assure that it contains a
pointer. That type would be intptr_t or uintptr_t. However the C99
standard says that those types are optional, so their use would not
be portable. This commit simply uses size_t or whatever configure
decided to use for size_t. That would be the same length as
ptrdiff_t, and so will work just as well. The code checks to see if
the length of the type used is the same as the length of a void
pointer, so there is already protection against the use of the
wrong type. The use of size_t (or ptrdiff_t) will almost always
work, as all modern architectures have an array size that is the
same as the pointer size. Only old segmented architectures would
have to fall back to the slower CRC-32 calculation, where the
amount of memory that can be accessed is larger than the maximum
array size.
2017-06-03 09:53:33 -07:00
Mark Adler
2fa463bacf zlib 1.2.9 2016-12-31 23:37:10 -08:00
Mark Adler
bedea2483b Clean up and comment the use of local for static. 2016-10-26 10:25:10 -07:00
Mark Adler
ce12c5cd00 Make a noble effort at setting OS_CODE correctly.
This updates the OS_CODE determination at compile time to match as
closely as possible the operating system mappings documented in
the PKWare APPNOTE.TXT version 6.3.4, section 4.4.2.2. That byte
in the gzip header is used by nobody for anything, as far as I can
tell. However we might as well try to set it appropriately.
2016-10-25 20:45:41 -07:00
Mark Adler
51a223def4 Avoid use of DEBUG macro -- change to ZLIB_DEBUG. 2015-07-28 22:44:31 -07:00
Mark Adler
0b16609409 zlib 1.2.7.1 2013-03-24 22:47:59 -07:00
Mark Adler
f81b79c559 Line length cleanup. 2013-03-24 22:30:40 -07:00
Mark Adler
62d6112a79 Clean up the usage of z_const and respect const usage within zlib.
This patch allows zlib to compile cleanly with the -Wcast-qual gcc
warning enabled, but only if ZLIB_CONST is defined, which adds
const to next_in and msg in z_stream and in the in_func prototype.
A --const option is added to ./configure which adds -DZLIB_CONST
to the compile flags, and adds -Wcast-qual to the compile flags
when ZLIBGCCWARN is set in the environment.
2012-08-13 00:02:40 -07:00
Mark Adler
dab7531ecc Simplify test and use of gcc hidden attribute. 2012-03-03 00:20:00 -08:00
Mark Adler
2547c6c81f Don't use library or built-in byte swaps.
Using optimized byte swaps reduced portability for no real benefit,
since they are in parts of the code that represent a tiny fraction
of the execution time.  So a simple definition of a byte swap is
now used.
2012-03-03 00:03:30 -08:00
Mark Adler
3f4339b61b Improve the detection of no hidden visibility attribute. 2012-02-19 23:33:10 -08:00
Mark Adler
e6d2a8471b Do not use the visibility attribute if NO_VIZ defined. 2012-02-19 22:45:10 -08:00
Mark Adler
a75d6ea070 Require gcc 4.0 or later on Mac OS X to use the hidden attribute. 2012-02-18 15:37:28 -08:00
Mark Adler
eee7b9e576 Remove unnecessary include for byte swap built-in [Bosmans]. 2012-02-13 23:03:36 -08:00
Mark Adler
5bbdc122ad Don't use built-in byte swaps if compiled solo. 2012-02-12 19:28:06 -08:00
Mark Adler
94acb3c1a0 zlib 1.2.6.1 2012-02-12 14:20:33 -08:00
Mark Adler
7d45cf5a1d Use optimized byte swap operations for Microsoft and GNU [Snyder]. 2012-02-11 00:26:38 -08:00
Mark Adler
fe61dfb8a2 zlib 1.2.5.2 2011-12-18 10:39:45 -08:00
Mark Adler
15b5671b78 Facilitate compilation with Borland C++ for pragmas and vsnprintf. 2011-11-19 13:53:26 -08:00
Mark Adler
f442c1e89e Add a ./config --solo option to make zlib subset with no libary use
A common request has been the ability to compile zlib to require no
other libraries.  This --solo option provides that ability.  The price
is that the gz*, compress*, and uncompress functions are eliminated,
and that the user must provide memory allocation and free routines to
deflate and inflate when initializing.
2011-10-07 02:11:56 -07:00
Mark Adler
00c836e325 Merge vestigial vsnprintf determination from zutil.h to gzguts.h.
This also moves some of the same from zconf.h to gzguts.h. A new
function, gzflags(), was created to pass the compilation flags
related to vsnprintf usage back to zlibCompileFlags() in zutil.c.
In the process, various compiler configuration files were updated
to include gzflags(), as well as the new gzgetc_() function added
when the gzgetc() macro was introduced in a previous patch.
2011-10-02 11:15:00 -07:00
Tor Lillqvist
7142fcfeed Always add large file support for windows 2011-10-01 10:02:09 -07:00
Mark Adler
7301420248 zlib 1.2.4.5 2011-09-09 23:34:55 -07:00
Mark Adler
f4498bea28 zlib 1.2.4.3 2011-09-09 23:34:38 -07:00
Mark Adler
7147f24cd7 zlib 1.2.4.2 2011-09-09 23:34:30 -07:00
Mark Adler
05d47d2627 zlib 1.2.4.1 2011-09-09 23:34:22 -07:00
Mark Adler
a1141160bc zlib 1.2.4 2011-09-09 23:33:59 -07:00
Mark Adler
dc5a43ebfa zlib 1.2.3.6 2011-09-09 23:26:58 -07:00
Mark Adler
d004b04783 zlib 1.2.3.5 2011-09-09 23:26:49 -07:00
Mark Adler
f6194ef39a zlib 1.2.3.4 2011-09-09 23:26:40 -07:00
Mark Adler
639be99788 zlib 1.2.3.3 2011-09-09 23:26:29 -07:00
Mark Adler
d6231142d2 zlib 1.2.3.2 2011-09-09 23:25:38 -07:00
Mark Adler
b1c19ca6d8 zlib 1.2.3.1 2011-09-09 23:25:27 -07:00
Mark Adler
9c3a583021 zlib 1.2.2.4 2011-09-09 23:24:52 -07:00
Mark Adler
6b8233bfe0 zlib 1.2.2.3 2011-09-09 23:24:43 -07:00
Mark Adler
0484693e17 zlib 1.2.2.2 2011-09-09 23:24:33 -07:00
Mark Adler
9811b53dd9 zlib 1.2.2.1 2011-09-09 23:24:24 -07:00
Mark Adler
7a6955760b zlib 1.2.1.2 2011-09-09 23:23:45 -07:00
Mark Adler
7a33a861d1 zlib 1.2.1 2011-09-09 23:23:27 -07:00
Mark Adler
b97ec631c6 zlib 1.2.0.7 2011-09-09 23:23:01 -07:00
Mark Adler
4b5a43a219 zlib 1.2.0.5 2011-09-09 23:22:37 -07:00
Mark Adler
8e34b3a802 zlib 1.2.0.2 2011-09-09 23:22:10 -07:00
Mark Adler
13a294f044 zlib 1.2.0.1 2011-09-09 23:21:57 -07:00
Mark Adler
7c2a874e50 zlib 1.2.0 2011-09-09 23:21:47 -07:00
Mark Adler
a383133c4e zlib 1.1.4 2011-09-09 23:20:42 -07:00
Mark Adler
14763ac7c6 zlib 1.1.3 2011-09-09 23:20:29 -07:00
Mark Adler
b8c9ecb076 zlib 1.0.9 2011-09-09 23:19:21 -07:00
Mark Adler
6759211ad8 zlib 1.0.8 2011-09-09 23:18:57 -07:00
Mark Adler
7850e4e406 zlib 1.0.7 2011-09-09 23:17:33 -07:00