Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
041167b2
Commit
041167b2
authored
Feb 17, 2024
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zlib: Import upstream release 1.3.1.
parent
73a8c068
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
107 additions
and
66 deletions
+107
-66
deflate.c
libs/zlib/deflate.c
+36
-11
deflate.h
libs/zlib/deflate.h
+33
-2
inflate.c
libs/zlib/inflate.c
+1
-1
inftrees.c
libs/zlib/inftrees.c
+3
-3
inftrees.h
libs/zlib/inftrees.h
+2
-2
trees.c
libs/zlib/trees.c
+17
-3
zconf.h
libs/zlib/zconf.h
+1
-9
zlib.h
libs/zlib/zlib.h
+11
-11
zutil.h
libs/zlib/zutil.h
+3
-24
No files found.
libs/zlib/deflate.c
View file @
041167b2
/* deflate.c -- compress data using the deflation algorithm
* Copyright (C) 1995-202
3
Jean-loup Gailly and Mark Adler
* Copyright (C) 1995-202
4
Jean-loup Gailly and Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -52,7 +52,7 @@
#include "deflate.h"
const
char
deflate_copyright
[]
=
" deflate 1.3
Copyright 1995-2023
Jean-loup Gailly and Mark Adler "
;
" deflate 1.3
.1 Copyright 1995-2024
Jean-loup Gailly and Mark Adler "
;
/*
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
...
...
@@ -493,7 +493,7 @@ int ZEXPORT deflateInit2_(z_streamp strm, int level, int method,
* symbols from which it is being constructed.
*/
s
->
pending_buf
=
(
uchf
*
)
ZALLOC
(
strm
,
s
->
lit_bufsize
,
4
);
s
->
pending_buf
=
(
uchf
*
)
ZALLOC
(
strm
,
s
->
lit_bufsize
,
LIT_BUFS
);
s
->
pending_buf_size
=
(
ulg
)
s
->
lit_bufsize
*
4
;
if
(
s
->
window
==
Z_NULL
||
s
->
prev
==
Z_NULL
||
s
->
head
==
Z_NULL
||
...
...
@@ -503,8 +503,14 @@ int ZEXPORT deflateInit2_(z_streamp strm, int level, int method,
deflateEnd
(
strm
);
return
Z_MEM_ERROR
;
}
#ifdef LIT_MEM
s
->
d_buf
=
(
ushf
*
)(
s
->
pending_buf
+
(
s
->
lit_bufsize
<<
1
));
s
->
l_buf
=
s
->
pending_buf
+
(
s
->
lit_bufsize
<<
2
);
s
->
sym_end
=
s
->
lit_bufsize
-
1
;
#else
s
->
sym_buf
=
s
->
pending_buf
+
s
->
lit_bufsize
;
s
->
sym_end
=
(
s
->
lit_bufsize
-
1
)
*
3
;
#endif
/* We avoid equality with lit_bufsize*3 because of wraparound at 64K
* on 16 bit machines and because stored blocks are restricted to
* 64K-1 bytes.
...
...
@@ -720,9 +726,15 @@ int ZEXPORT deflatePrime(z_streamp strm, int bits, int value) {
if
(
deflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
s
=
strm
->
state
;
#ifdef LIT_MEM
if
(
bits
<
0
||
bits
>
16
||
(
uchf
*
)
s
->
d_buf
<
s
->
pending_out
+
((
Buf_size
+
7
)
>>
3
))
return
Z_BUF_ERROR
;
#else
if
(
bits
<
0
||
bits
>
16
||
s
->
sym_buf
<
s
->
pending_out
+
((
Buf_size
+
7
)
>>
3
))
return
Z_BUF_ERROR
;
#endif
do
{
put
=
Buf_size
-
s
->
bi_valid
;
if
(
put
>
bits
)
...
...
@@ -1294,7 +1306,7 @@ int ZEXPORT deflateCopy(z_streamp dest, z_streamp source) {
ds
->
window
=
(
Bytef
*
)
ZALLOC
(
dest
,
ds
->
w_size
,
2
*
sizeof
(
Byte
));
ds
->
prev
=
(
Posf
*
)
ZALLOC
(
dest
,
ds
->
w_size
,
sizeof
(
Pos
));
ds
->
head
=
(
Posf
*
)
ZALLOC
(
dest
,
ds
->
hash_size
,
sizeof
(
Pos
));
ds
->
pending_buf
=
(
uchf
*
)
ZALLOC
(
dest
,
ds
->
lit_bufsize
,
4
);
ds
->
pending_buf
=
(
uchf
*
)
ZALLOC
(
dest
,
ds
->
lit_bufsize
,
LIT_BUFS
);
if
(
ds
->
window
==
Z_NULL
||
ds
->
prev
==
Z_NULL
||
ds
->
head
==
Z_NULL
||
ds
->
pending_buf
==
Z_NULL
)
{
...
...
@@ -1305,10 +1317,15 @@ int ZEXPORT deflateCopy(z_streamp dest, z_streamp source) {
zmemcpy
(
ds
->
window
,
ss
->
window
,
ds
->
w_size
*
2
*
sizeof
(
Byte
));
zmemcpy
((
voidpf
)
ds
->
prev
,
(
voidpf
)
ss
->
prev
,
ds
->
w_size
*
sizeof
(
Pos
));
zmemcpy
((
voidpf
)
ds
->
head
,
(
voidpf
)
ss
->
head
,
ds
->
hash_size
*
sizeof
(
Pos
));
zmemcpy
(
ds
->
pending_buf
,
ss
->
pending_buf
,
(
uInt
)
ds
->
pending_buf_size
);
zmemcpy
(
ds
->
pending_buf
,
ss
->
pending_buf
,
ds
->
lit_bufsize
*
LIT_BUFS
);
ds
->
pending_out
=
ds
->
pending_buf
+
(
ss
->
pending_out
-
ss
->
pending_buf
);
#ifdef LIT_MEM
ds
->
d_buf
=
(
ushf
*
)(
ds
->
pending_buf
+
(
ds
->
lit_bufsize
<<
1
));
ds
->
l_buf
=
ds
->
pending_buf
+
(
ds
->
lit_bufsize
<<
2
);
#else
ds
->
sym_buf
=
ds
->
pending_buf
+
ds
->
lit_bufsize
;
#endif
ds
->
l_desc
.
dyn_tree
=
ds
->
dyn_ltree
;
ds
->
d_desc
.
dyn_tree
=
ds
->
dyn_dtree
;
...
...
@@ -1539,13 +1556,21 @@ local uInt longest_match(deflate_state *s, IPos cur_match) {
*/
local
void
check_match
(
deflate_state
*
s
,
IPos
start
,
IPos
match
,
int
length
)
{
/* check that the match is indeed a match */
if
(
zmemcmp
(
s
->
window
+
match
,
s
->
window
+
start
,
length
)
!=
EQUAL
)
{
fprintf
(
stderr
,
" start %u, match %u, length %d
\n
"
,
start
,
match
,
length
);
Bytef
*
back
=
s
->
window
+
(
int
)
match
,
*
here
=
s
->
window
+
start
;
IPos
len
=
length
;
if
(
match
==
(
IPos
)
-
1
)
{
/* match starts one byte before the current window -- just compare the
subsequent length-1 bytes */
back
++
;
here
++
;
len
--
;
}
if
(
zmemcmp
(
back
,
here
,
len
)
!=
EQUAL
)
{
fprintf
(
stderr
,
" start %u, match %d, length %d
\n
"
,
start
,
(
int
)
match
,
length
);
do
{
fprintf
(
stderr
,
"
%c%c"
,
s
->
window
[
match
++
],
s
->
window
[
start
++
]
);
}
while
(
--
len
gth
!=
0
);
fprintf
(
stderr
,
"
(%02x %02x)"
,
*
back
++
,
*
here
++
);
}
while
(
--
len
!=
0
);
z_error
(
"invalid match"
);
}
if
(
z_verbose
>
1
)
{
...
...
libs/zlib/deflate.h
View file @
041167b2
/* deflate.h -- internal compression state
* Copyright (C) 1995-20
18
Jean-loup Gailly
* Copyright (C) 1995-20
24
Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -23,6 +23,10 @@
# define GZIP
#endif
/* define LIT_MEM to slightly increase the speed of deflate (order 1% to 2%) at
the cost of a larger memory footprint */
/* #define LIT_MEM */
/* ===========================================================================
* Internal compression state.
*/
...
...
@@ -217,7 +221,14 @@ typedef struct internal_state {
/* Depth of each subtree used as tie breaker for trees of equal frequency
*/
#ifdef LIT_MEM
# define LIT_BUFS 5
ushf
*
d_buf
;
/* buffer for distances */
uchf
*
l_buf
;
/* buffer for literals/lengths */
#else
# define LIT_BUFS 4
uchf
*
sym_buf
;
/* buffer for distances and literals/lengths */
#endif
uInt
lit_bufsize
;
/* Size of match buffer for literals/lengths. There are 4 reasons for
...
...
@@ -239,7 +250,7 @@ typedef struct internal_state {
* - I can't count above 4
*/
uInt
sym_next
;
/* running index in sym
_buf
*/
uInt
sym_next
;
/* running index in sym
bol buffer
*/
uInt
sym_end
;
/* symbol table full when sym_next reaches this */
ulg
opt_len
;
/* bit length of current block with optimal trees */
...
...
@@ -318,6 +329,25 @@ void ZLIB_INTERNAL _tr_stored_block(deflate_state *s, charf *buf,
extern
const
uch
ZLIB_INTERNAL
_dist_code
[];
#endif
#ifdef LIT_MEM
# define _tr_tally_lit(s, c, flush) \
{ uch cc = (c); \
s->d_buf[s->sym_next] = 0; \
s->l_buf[s->sym_next++] = cc; \
s->dyn_ltree[cc].Freq++; \
flush = (s->sym_next == s->sym_end); \
}
# define _tr_tally_dist(s, distance, length, flush) \
{ uch len = (uch)(length); \
ush dist = (ush)(distance); \
s->d_buf[s->sym_next] = dist; \
s->l_buf[s->sym_next++] = len; \
dist--; \
s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
s->dyn_dtree[d_code(dist)].Freq++; \
flush = (s->sym_next == s->sym_end); \
}
#else
# define _tr_tally_lit(s, c, flush) \
{ uch cc = (c); \
s->sym_buf[s->sym_next++] = 0; \
...
...
@@ -337,6 +367,7 @@ void ZLIB_INTERNAL _tr_stored_block(deflate_state *s, charf *buf,
s->dyn_dtree[d_code(dist)].Freq++; \
flush = (s->sym_next == s->sym_end); \
}
#endif
#else
# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
# define _tr_tally_dist(s, distance, length, flush) \
...
...
libs/zlib/inflate.c
View file @
041167b2
...
...
@@ -1387,7 +1387,7 @@ int ZEXPORT inflateSync(z_streamp strm) {
/* if first time, start search in bit buffer */
if
(
state
->
mode
!=
SYNC
)
{
state
->
mode
=
SYNC
;
state
->
hold
<<
=
state
->
bits
&
7
;
state
->
hold
>>
=
state
->
bits
&
7
;
state
->
bits
-=
state
->
bits
&
7
;
len
=
0
;
while
(
state
->
bits
>=
8
)
{
...
...
libs/zlib/inftrees.c
View file @
041167b2
/* inftrees.c -- generate Huffman trees for efficient decoding
* Copyright (C) 1995-202
3
Mark Adler
* Copyright (C) 1995-202
4
Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -9,7 +9,7 @@
#define MAXBITS 15
const
char
inflate_copyright
[]
=
" inflate 1.3
Copyright 1995-2023
Mark Adler "
;
" inflate 1.3
.1 Copyright 1995-2024
Mark Adler "
;
/*
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
...
...
@@ -57,7 +57,7 @@ int ZLIB_INTERNAL inflate_table(codetype type, unsigned short FAR *lens,
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 */
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
,
198
,
203
};
19
,
19
,
19
,
19
,
20
,
20
,
20
,
20
,
21
,
21
,
21
,
21
,
16
,
203
,
77
};
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
,
257
,
385
,
513
,
769
,
1025
,
1537
,
2049
,
3073
,
4097
,
6145
,
...
...
libs/zlib/inftrees.h
View file @
041167b2
...
...
@@ -41,8 +41,8 @@ typedef struct {
examples/enough.c found in the zlib distribution. The arguments to that
program are the number of symbols, the initial root table size, and the
maximum bit length of a code. "enough 286 9 15" for literal/length codes
returns
returns 852, and "enough 30 6 15" for distance codes returns 592.
The
initial root table size (9 or 6) is found in the fifth argument of the
returns
852, and "enough 30 6 15" for distance codes returns 592. The
initial root table size (9 or 6) is found in the fifth argument of the
inflate_table() calls in inflate.c and infback.c. If the root table size is
changed, then these maximum sizes would be need to be recalculated and
updated. */
...
...
libs/zlib/trees.c
View file @
041167b2
/* trees.c -- output deflated data using Huffman coding
* Copyright (C) 1995-202
1
Jean-loup Gailly
* Copyright (C) 1995-202
4
Jean-loup Gailly
* detect_data_type() function provided freely by Cosmin Truta, 2006
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -899,14 +899,19 @@ local void compress_block(deflate_state *s, const ct_data *ltree,
const
ct_data
*
dtree
)
{
unsigned
dist
;
/* distance of matched string */
int
lc
;
/* match length or unmatched char (if dist == 0) */
unsigned
sx
=
0
;
/* running index in sym
_buf
*/
unsigned
sx
=
0
;
/* running index in sym
bol buffers
*/
unsigned
code
;
/* the code to send */
int
extra
;
/* number of extra bits to send */
if
(
s
->
sym_next
!=
0
)
do
{
#ifdef LIT_MEM
dist
=
s
->
d_buf
[
sx
];
lc
=
s
->
l_buf
[
sx
++
];
#else
dist
=
s
->
sym_buf
[
sx
++
]
&
0xff
;
dist
+=
(
unsigned
)(
s
->
sym_buf
[
sx
++
]
&
0xff
)
<<
8
;
lc
=
s
->
sym_buf
[
sx
++
];
#endif
if
(
dist
==
0
)
{
send_code
(
s
,
lc
,
ltree
);
/* send a literal byte */
Tracecv
(
isgraph
(
lc
),
(
stderr
,
" '%c' "
,
lc
));
...
...
@@ -931,8 +936,12 @@ local void compress_block(deflate_state *s, const ct_data *ltree,
}
}
/* literal or match pair ? */
/* Check that the overlay between pending_buf and sym_buf is ok: */
/* Check for no overlay of pending_buf on needed symbols */
#ifdef LIT_MEM
Assert
(
s
->
pending
<
2
*
(
s
->
lit_bufsize
+
sx
),
"pendingBuf overflow"
);
#else
Assert
(
s
->
pending
<
s
->
lit_bufsize
+
sx
,
"pendingBuf overflow"
);
#endif
}
while
(
sx
<
s
->
sym_next
);
...
...
@@ -1082,9 +1091,14 @@ void ZLIB_INTERNAL _tr_flush_block(deflate_state *s, charf *buf,
* the current block must be flushed.
*/
int
ZLIB_INTERNAL
_tr_tally
(
deflate_state
*
s
,
unsigned
dist
,
unsigned
lc
)
{
#ifdef LIT_MEM
s
->
d_buf
[
s
->
sym_next
]
=
(
ush
)
dist
;
s
->
l_buf
[
s
->
sym_next
++
]
=
(
uch
)
lc
;
#else
s
->
sym_buf
[
s
->
sym_next
++
]
=
(
uch
)
dist
;
s
->
sym_buf
[
s
->
sym_next
++
]
=
(
uch
)(
dist
>>
8
);
s
->
sym_buf
[
s
->
sym_next
++
]
=
(
uch
)
lc
;
#endif
if
(
dist
==
0
)
{
/* lc is the unmatched char */
s
->
dyn_ltree
[
lc
].
Freq
++
;
...
...
libs/zlib/zconf.h
View file @
041167b2
/* zconf.h -- configuration of the zlib compression library
* Copyright (C) 1995-20
16
Jean-loup Gailly, Mark Adler
* Copyright (C) 1995-20
24
Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -300,14 +300,6 @@
# endif
#endif
#ifndef Z_ARG
/* function prototypes for stdarg */
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
# define Z_ARG(args) args
# else
# define Z_ARG(args) ()
# endif
#endif
/* The following definitions for FAR are needed only for MSDOS mixed
* model programming (small or medium model with some far allocations).
* This was tested only with MSC; for other MSDOS compilers you may have
...
...
libs/zlib/zlib.h
View file @
041167b2
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.3
, August 18th, 2023
version 1.3
.1, January 22nd, 2024
Copyright (C) 1995-202
3
Jean-loup Gailly and Mark Adler
Copyright (C) 1995-202
4
Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
...
...
@@ -37,11 +37,11 @@
extern
"C"
{
#endif
#define ZLIB_VERSION "1.3"
#define ZLIB_VERNUM 0x13
0
0
#define ZLIB_VERSION "1.3
.1
"
#define ZLIB_VERNUM 0x13
1
0
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 3
#define ZLIB_VER_REVISION
0
#define ZLIB_VER_REVISION
1
#define ZLIB_VER_SUBREVISION 0
/*
...
...
@@ -936,10 +936,10 @@ ZEXTERN int ZEXPORT inflateSync(z_streamp strm);
inflateSync returns Z_OK if a possible full flush point has been found,
Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
In the success case, the application may save the current
current value of
total_in which indicates where valid compressed data was found. In the
error case, the application may repeatedly call inflateSync, providing more
input each
time, until success or end of the input data.
In the success case, the application may save the current
value of total_in
which indicates where valid compressed data was found. In the error case,
the application may repeatedly call inflateSync, providing more input each
time, until success or end of the input data.
*/
ZEXTERN
int
ZEXPORT
inflateCopy
(
z_streamp
dest
,
...
...
@@ -1758,14 +1758,14 @@ ZEXTERN uLong ZEXPORT crc32_combine(uLong crc1, uLong crc2, z_off_t len2);
seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
len2.
len2.
len2 must be non-negative.
*/
/*
ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t len2);
Return the operator corresponding to length len2, to be used with
crc32_combine_op().
crc32_combine_op().
len2 must be non-negative.
*/
ZEXTERN
uLong
ZEXPORT
crc32_combine_op
(
uLong
crc1
,
uLong
crc2
,
uLong
op
);
...
...
libs/zlib/zutil.h
View file @
041167b2
/* zutil.h -- internal interface and configuration of the compression library
* Copyright (C) 1995-202
2
Jean-loup Gailly, Mark Adler
* Copyright (C) 1995-202
4
Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -56,7 +56,7 @@ typedef unsigned long ulg;
extern
z_const
char
*
const
z_errmsg
[
10
];
/* indexed by 2-zlib_error */
/* (size given to avoid silly warnings with Visual C++) */
#define ERR_MSG(err) z_errmsg[
Z_NEED_DICT-
(err)]
#define ERR_MSG(err) z_errmsg[
(err) < -6 || (err) > 2 ? 9 : 2 -
(err)]
#define ERR_RETURN(strm,err) \
return (strm->msg = ERR_MSG(err), (err))
...
...
@@ -137,17 +137,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# endif
#endif
#if defined(MACOS)
|| defined(TARGET_OS_MAC)
#if defined(MACOS)
# define OS_CODE 7
# ifndef Z_SOLO
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
# include <unix.h>
/* for fdopen */
# else
# ifndef fdopen
# define fdopen(fd,mode) NULL
/* No fdopen() */
# endif
# endif
# endif
#endif
#ifdef __acorn
...
...
@@ -170,18 +161,6 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# define OS_CODE 19
#endif
#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL
/* No fdopen() */
#endif
#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
# if defined(_WIN32_WCE)
# define fdopen(fd,mode) NULL
/* No fdopen() */
# else
# define fdopen(fd,type) _fdopen(fd,type)
# endif
#endif
#if defined(__BORLANDC__) && !defined(MSDOS)
#pragma warn -8004
#pragma warn -8008
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment