Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Libretro
beetle-pce-libretro
Commits
b2197e5d
Commit
b2197e5d
authored
Dec 11, 2021
by
Vague Rant
Browse files
Revert "(zlib) Update - strip what we don't need"
This reverts commit
d1fe47b1
.
parent
d1fe47b1
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
deps/zlib-1.2.11/crc32.h
View file @
b2197e5d
This diff is collapsed.
Click to expand it.
deps/zlib-1.2.11/inffast.c
View file @
b2197e5d
...
...
@@ -53,6 +53,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
unsigned
char
FAR
*
out
;
/* local strm->next_out */
unsigned
char
FAR
*
beg
;
/* inflate()'s initial strm->next_out */
unsigned
char
FAR
*
end
;
/* while out < end, enough space available */
#ifdef INFLATE_STRICT
unsigned
dmax
;
/* maximum distance from zlib header */
#endif
unsigned
wsize
;
/* window size or zero if not using window */
unsigned
whave
;
/* valid bytes in the window */
unsigned
wnext
;
/* window write index */
...
...
@@ -77,6 +80,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
out
=
strm
->
next_out
;
beg
=
out
-
(
start
-
strm
->
avail_out
);
end
=
out
+
(
strm
->
avail_out
-
257
);
#ifdef INFLATE_STRICT
dmax
=
state
->
dmax
;
#endif
wsize
=
state
->
wsize
;
whave
=
state
->
whave
;
wnext
=
state
->
wnext
;
...
...
@@ -142,6 +148,13 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
}
}
dist
+=
(
unsigned
)
hold
&
((
1U
<<
op
)
-
1
);
#ifdef INFLATE_STRICT
if
(
dist
>
dmax
)
{
strm
->
msg
=
(
char
*
)
"invalid distance too far back"
;
state
->
mode
=
BAD
;
break
;
}
#endif
hold
>>=
op
;
bits
-=
op
;
op
=
(
unsigned
)(
out
-
beg
);
/* max distance in output */
...
...
@@ -154,6 +167,25 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
state
->
mode
=
BAD
;
break
;
}
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
if
(
len
<=
op
-
whave
)
{
do
{
*
out
++
=
0
;
}
while
(
--
len
);
continue
;
}
len
-=
op
-
whave
;
do
{
*
out
++
=
0
;
}
while
(
--
op
>
whave
);
if
(
op
==
0
)
{
from
=
out
-
dist
;
do
{
*
out
++
=
*
from
++
;
}
while
(
--
len
);
continue
;
}
#endif
}
from
=
window
;
if
(
wnext
==
0
)
{
/* very common case */
...
...
deps/zlib-1.2.11/inflate.c
View file @
b2197e5d
...
...
@@ -3,16 +3,98 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
/*
* Change history:
*
* 1.2.beta0 24 Nov 2002
* - First version -- complete rewrite of inflate to simplify code, avoid
* creation of window when not needed, minimize use of window when it is
* needed, make inffast.c even faster, implement gzip decoding, and to
* improve code readability and style over the previous zlib inflate code
*
* 1.2.beta1 25 Nov 2002
* - Use pointers for available input and output checking in inffast.c
* - Remove input and output counters in inffast.c
* - Change inffast.c entry and loop from avail_in >= 7 to >= 6
* - Remove unnecessary second byte pull from length extra in inffast.c
* - Unroll direct copy to three copies per loop in inffast.c
*
* 1.2.beta2 4 Dec 2002
* - Change external routine names to reduce potential conflicts
* - Correct filename to inffixed.h for fixed tables in inflate.c
* - Make hbuf[] unsigned char to match parameter type in inflate.c
* - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset)
* to avoid negation problem on Alphas (64 bit) in inflate.c
*
* 1.2.beta3 22 Dec 2002
* - Add comments on state->bits assertion in inffast.c
* - Add comments on op field in inftrees.h
* - Fix bug in reuse of allocated window after inflateReset()
* - Remove bit fields--back to byte structure for speed
* - Remove distance extra == 0 check in inflate_fast()--only helps for lengths
* - Change post-increments to pre-increments in inflate_fast(), PPC biased?
* - Add compile time option, POSTINC, to use post-increments instead (Intel?)
* - Make MATCH copy in inflate() much faster for when inflate_fast() not used
* - Use local copies of stream next and avail values, as well as local bit
* buffer and bit count in inflate()--for speed when inflate_fast() not used
*
* 1.2.beta4 1 Jan 2003
* - Split ptr - 257 statements in inflate_table() to avoid compiler warnings
* - Move a comment on output buffer sizes from inffast.c to inflate.c
* - Add comments in inffast.c to introduce the inflate_fast() routine
* - Rearrange window copies in inflate_fast() for speed and simplification
* - Unroll last copy for window match in inflate_fast()
* - Use local copies of window variables in inflate_fast() for speed
* - Pull out common wnext == 0 case for speed in inflate_fast()
* - Make op and len in inflate_fast() unsigned for consistency
* - Add FAR to lcode and dcode declarations in inflate_fast()
* - Simplified bad distance check in inflate_fast()
* - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new
* source file infback.c to provide a call-back interface to inflate for
* programs like gzip and unzip -- uses window as output buffer to avoid
* window copying
*
* 1.2.beta5 1 Jan 2003
* - Improved inflateBack() interface to allow the caller to provide initial
* input in strm.
* - Fixed stored blocks bug in inflateBack()
*
* 1.2.beta6 4 Jan 2003
* - Added comments in inffast.c on effectiveness of POSTINC
* - Typecasting all around to reduce compiler warnings
* - Changed loops from while (1) or do {} while (1) to for (;;), again to
* make compilers happy
* - Changed type of window in inflateBackInit() to unsigned char *
*
* 1.2.beta7 27 Jan 2003
* - Changed many types to unsigned or unsigned short to avoid warnings
* - Added inflateCopy() function
*
* 1.2.0 9 Mar 2003
* - Changed inflateBack() interface to provide separate opaque descriptors
* for the in() and out() functions
* - Changed inflateBack() argument and in_func typedef to swap the length
* and buffer address return values for the input function
* - Check next_in and next_out for Z_NULL on entry to inflate()
*
* The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
*/
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
#include "inffast.h"
#define BUILDFIXED
/* function prototypes */
local
int
inflateStateCheck
OF
((
z_streamp
strm
));
local
void
fixedtables
OF
((
struct
inflate_state
FAR
*
state
));
local
int
updatewindow
OF
((
z_streamp
strm
,
const
unsigned
char
FAR
*
end
,
unsigned
copy
));
void
makefixed
OF
((
void
));
local
unsigned
syncsearch
OF
((
unsigned
FAR
*
have
,
const
unsigned
char
FAR
*
buf
,
unsigned
len
));
local
int
inflateStateCheck
(
strm
)
z_streamp
strm
;
...
...
@@ -42,6 +124,7 @@ z_streamp strm;
state
->
mode
=
HEAD
;
state
->
last
=
0
;
state
->
havedict
=
0
;
state
->
dmax
=
32768U
;
state
->
head
=
Z_NULL
;
state
->
hold
=
0
;
state
->
bits
=
0
;
...
...
@@ -144,6 +227,37 @@ int stream_size;
return
inflateInit2_
(
strm
,
DEF_WBITS
,
version
,
stream_size
);
}
int
ZEXPORT
inflatePrime
(
strm
,
bits
,
value
)
z_streamp
strm
;
int
bits
;
int
value
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
if
(
bits
<
0
)
{
state
->
hold
=
0
;
state
->
bits
=
0
;
return
Z_OK
;
}
if
(
bits
>
16
||
state
->
bits
+
(
uInt
)
bits
>
32
)
return
Z_STREAM_ERROR
;
value
&=
(
1L
<<
bits
)
-
1
;
state
->
hold
+=
(
unsigned
)
value
<<
state
->
bits
;
state
->
bits
+=
(
uInt
)
bits
;
return
Z_OK
;
}
/*
Return state with length and distance decoding tables and index sizes set to
fixed code decoding. Normally this returns fixed tables from inffixed.h.
If BUILDFIXED is defined, then instead this routine builds the tables the
first time it's called, and returns those tables the first time and
thereafter. This reduces the size of the code by about 2K bytes, in
exchange for a little execution time. However, BUILDFIXED should not be
used for threaded applications, since the rewriting of the tables and virgin
may not be thread-safe.
*/
local
void
fixedtables
(
state
)
struct
inflate_state
FAR
*
state
;
{
...
...
@@ -500,6 +614,7 @@ int flush;
state
->
mode
=
BAD
;
break
;
}
state
->
dmax
=
1U
<<
len
;
strm
->
adler
=
state
->
check
=
adler32
(
0L
,
Z_NULL
,
0
);
state
->
mode
=
hold
&
0x200
?
DICTID
:
TYPE
;
INITBITS
();
...
...
@@ -919,6 +1034,13 @@ int flush;
DROPBITS
(
state
->
extra
);
state
->
back
+=
state
->
extra
;
}
#ifdef INFLATE_STRICT
if
(
state
->
offset
>
state
->
dmax
)
{
strm
->
msg
=
(
char
*
)
"invalid distance too far back"
;
state
->
mode
=
BAD
;
break
;
}
#endif
state
->
mode
=
MATCH
;
case
MATCH
:
if
(
left
==
0
)
goto
inf_leave
;
...
...
@@ -931,6 +1053,18 @@ int flush;
state
->
mode
=
BAD
;
break
;
}
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
copy
-=
state
->
whave
;
if
(
copy
>
state
->
length
)
copy
=
state
->
length
;
if
(
copy
>
left
)
copy
=
left
;
left
-=
copy
;
state
->
length
-=
copy
;
do
{
*
put
++
=
0
;
}
while
(
--
copy
);
if
(
state
->
length
==
0
)
state
->
mode
=
LEN
;
break
;
#endif
}
if
(
copy
>
state
->
wnext
)
{
copy
-=
state
->
wnext
;
...
...
@@ -1048,3 +1182,274 @@ z_streamp strm;
strm
->
state
=
Z_NULL
;
return
Z_OK
;
}
int
ZEXPORT
inflateGetDictionary
(
strm
,
dictionary
,
dictLength
)
z_streamp
strm
;
Bytef
*
dictionary
;
uInt
*
dictLength
;
{
struct
inflate_state
FAR
*
state
;
/* check state */
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
/* copy dictionary */
if
(
state
->
whave
&&
dictionary
!=
Z_NULL
)
{
zmemcpy
(
dictionary
,
state
->
window
+
state
->
wnext
,
state
->
whave
-
state
->
wnext
);
zmemcpy
(
dictionary
+
state
->
whave
-
state
->
wnext
,
state
->
window
,
state
->
wnext
);
}
if
(
dictLength
!=
Z_NULL
)
*
dictLength
=
state
->
whave
;
return
Z_OK
;
}
int
ZEXPORT
inflateSetDictionary
(
strm
,
dictionary
,
dictLength
)
z_streamp
strm
;
const
Bytef
*
dictionary
;
uInt
dictLength
;
{
struct
inflate_state
FAR
*
state
;
unsigned
long
dictid
;
int
ret
;
/* check state */
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
if
(
state
->
wrap
!=
0
&&
state
->
mode
!=
DICT
)
return
Z_STREAM_ERROR
;
/* check for correct dictionary identifier */
if
(
state
->
mode
==
DICT
)
{
dictid
=
adler32
(
0L
,
Z_NULL
,
0
);
dictid
=
adler32
(
dictid
,
dictionary
,
dictLength
);
if
(
dictid
!=
state
->
check
)
return
Z_DATA_ERROR
;
}
/* copy dictionary to window using updatewindow(), which will amend the
existing dictionary if appropriate */
ret
=
updatewindow
(
strm
,
dictionary
+
dictLength
,
dictLength
);
if
(
ret
)
{
state
->
mode
=
MEM
;
return
Z_MEM_ERROR
;
}
state
->
havedict
=
1
;
return
Z_OK
;
}
int
ZEXPORT
inflateGetHeader
(
strm
,
head
)
z_streamp
strm
;
gz_headerp
head
;
{
struct
inflate_state
FAR
*
state
;
/* check state */
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
if
((
state
->
wrap
&
2
)
==
0
)
return
Z_STREAM_ERROR
;
/* save header structure */
state
->
head
=
head
;
head
->
done
=
0
;
return
Z_OK
;
}
/*
Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
or when out of input. When called, *have is the number of pattern bytes
found in order so far, in 0..3. On return *have is updated to the new
state. If on return *have equals four, then the pattern was found and the
return value is how many bytes were read including the last byte of the
pattern. If *have is less than four, then the pattern has not been found
yet and the return value is len. In the latter case, syncsearch() can be
called again with more data and the *have state. *have is initialized to
zero for the first call.
*/
local
unsigned
syncsearch
(
have
,
buf
,
len
)
unsigned
FAR
*
have
;
const
unsigned
char
FAR
*
buf
;
unsigned
len
;
{
unsigned
got
;
unsigned
next
;
got
=
*
have
;
next
=
0
;
while
(
next
<
len
&&
got
<
4
)
{
if
((
int
)(
buf
[
next
])
==
(
got
<
2
?
0
:
0xff
))
got
++
;
else
if
(
buf
[
next
])
got
=
0
;
else
got
=
4
-
got
;
next
++
;
}
*
have
=
got
;
return
next
;
}
int
ZEXPORT
inflateSync
(
strm
)
z_streamp
strm
;
{
unsigned
len
;
/* number of bytes to look at or looked at */
unsigned
long
in
,
out
;
/* temporary to save total_in and total_out */
unsigned
char
buf
[
4
];
/* to restore bit buffer to byte string */
struct
inflate_state
FAR
*
state
;
/* check parameters */
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
if
(
strm
->
avail_in
==
0
&&
state
->
bits
<
8
)
return
Z_BUF_ERROR
;
/* if first time, start search in bit buffer */
if
(
state
->
mode
!=
SYNC
)
{
state
->
mode
=
SYNC
;
state
->
hold
<<=
state
->
bits
&
7
;
state
->
bits
-=
state
->
bits
&
7
;
len
=
0
;
while
(
state
->
bits
>=
8
)
{
buf
[
len
++
]
=
(
unsigned
char
)(
state
->
hold
);
state
->
hold
>>=
8
;
state
->
bits
-=
8
;
}
state
->
have
=
0
;
syncsearch
(
&
(
state
->
have
),
buf
,
len
);
}
/* search available input */
len
=
syncsearch
(
&
(
state
->
have
),
strm
->
next_in
,
strm
->
avail_in
);
strm
->
avail_in
-=
len
;
strm
->
next_in
+=
len
;
strm
->
total_in
+=
len
;
/* return no joy or set up to restart inflate() on a new block */
if
(
state
->
have
!=
4
)
return
Z_DATA_ERROR
;
in
=
strm
->
total_in
;
out
=
strm
->
total_out
;
inflateReset
(
strm
);
strm
->
total_in
=
in
;
strm
->
total_out
=
out
;
state
->
mode
=
TYPE
;
return
Z_OK
;
}
/*
Returns true if inflate is currently at the end of a block generated by
Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
implementation to provide an additional safety check. PPP uses
Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
block. When decompressing, PPP checks that at the end of input packet,
inflate is waiting for these length bytes.
*/
int
ZEXPORT
inflateSyncPoint
(
strm
)
z_streamp
strm
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
return
state
->
mode
==
STORED
&&
state
->
bits
==
0
;
}
int
ZEXPORT
inflateCopy
(
dest
,
source
)
z_streamp
dest
;
z_streamp
source
;
{
struct
inflate_state
FAR
*
state
;
struct
inflate_state
FAR
*
copy
;
unsigned
char
FAR
*
window
;
unsigned
wsize
;
/* check input */
if
(
inflateStateCheck
(
source
)
||
dest
==
Z_NULL
)
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
source
->
state
;
/* allocate space */
copy
=
(
struct
inflate_state
FAR
*
)
ZALLOC
(
source
,
1
,
sizeof
(
struct
inflate_state
));
if
(
copy
==
Z_NULL
)
return
Z_MEM_ERROR
;
window
=
Z_NULL
;
if
(
state
->
window
!=
Z_NULL
)
{
window
=
(
unsigned
char
FAR
*
)
ZALLOC
(
source
,
1U
<<
state
->
wbits
,
sizeof
(
unsigned
char
));
if
(
window
==
Z_NULL
)
{
ZFREE
(
source
,
copy
);
return
Z_MEM_ERROR
;
}
}
/* copy state */
zmemcpy
((
voidpf
)
dest
,
(
voidpf
)
source
,
sizeof
(
z_stream
));
zmemcpy
((
voidpf
)
copy
,
(
voidpf
)
state
,
sizeof
(
struct
inflate_state
));
copy
->
strm
=
dest
;
if
(
state
->
lencode
>=
state
->
codes
&&
state
->
lencode
<=
state
->
codes
+
ENOUGH
-
1
)
{
copy
->
lencode
=
copy
->
codes
+
(
state
->
lencode
-
state
->
codes
);
copy
->
distcode
=
copy
->
codes
+
(
state
->
distcode
-
state
->
codes
);
}
copy
->
next
=
copy
->
codes
+
(
state
->
next
-
state
->
codes
);
if
(
window
!=
Z_NULL
)
{
wsize
=
1U
<<
state
->
wbits
;
zmemcpy
(
window
,
state
->
window
,
wsize
);
}
copy
->
window
=
window
;
dest
->
state
=
(
struct
internal_state
FAR
*
)
copy
;
return
Z_OK
;
}
int
ZEXPORT
inflateUndermine
(
strm
,
subvert
)
z_streamp
strm
;
int
subvert
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
state
->
sane
=
!
subvert
;
return
Z_OK
;
#else
(
void
)
subvert
;
state
->
sane
=
1
;
return
Z_DATA_ERROR
;
#endif
}
int
ZEXPORT
inflateValidate
(
strm
,
check
)
z_streamp
strm
;
int
check
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
Z_STREAM_ERROR
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
if
(
check
)
state
->
wrap
|=
4
;
else
state
->
wrap
&=
~
4
;
return
Z_OK
;
}
long
ZEXPORT
inflateMark
(
strm
)
z_streamp
strm
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
-
(
1L
<<
16
);
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
return
(
long
)(((
unsigned
long
)((
long
)
state
->
back
))
<<
16
)
+
(
state
->
mode
==
COPY
?
state
->
length
:
(
state
->
mode
==
MATCH
?
state
->
was
-
state
->
length
:
0
));
}
unsigned
long
ZEXPORT
inflateCodesUsed
(
strm
)
z_streamp
strm
;
{
struct
inflate_state
FAR
*
state
;
if
(
inflateStateCheck
(
strm
))
return
(
unsigned
long
)
-
1
;
state
=
(
struct
inflate_state
FAR
*
)
strm
->
state
;
return
(
unsigned
long
)(
state
->
next
-
state
->
codes
);
}
deps/zlib-1.2.11/inflate.h
View file @
b2197e5d
...
...
@@ -87,6 +87,7 @@ struct inflate_state {
bit 2 true to validate check value */
int
havedict
;
/* true if dictionary provided */
int
flags
;
/* gzip header method and flags (0 if zlib) */
unsigned
dmax
;
/* zlib header max distance (INFLATE_STRICT) */
unsigned
long
check
;
/* protected copy of check value */
unsigned
long
total
;
/* protected copy of output count */
gz_headerp
head
;
/* where to save gzip header information */
...
...
deps/zlib-1.2.11/zconf.h
View file @
b2197e5d
...
...
@@ -31,7 +31,28 @@
# define adler32 z_adler32
# define adler32_z z_adler32_z
# define crc32 z_crc32
# define crc32_combine z_crc32_combine
# define crc32_combine64 z_crc32_combine64
# define crc32_z z_crc32_z
# define deflate z_deflate
# define deflateBound z_deflateBound
# define deflateCopy z_deflateCopy
# define deflateEnd z_deflateEnd
# define deflateGetDictionary z_deflateGetDictionary
# define deflateInit z_deflateInit
# define deflateInit2 z_deflateInit2
# define deflateInit2_ z_deflateInit2_
# define deflateInit_ z_deflateInit_
# define deflateParams z_deflateParams
# define deflatePending z_deflatePending
# define deflatePrime z_deflatePrime
# define deflateReset z_deflateReset
# define deflateResetKeep z_deflateResetKeep
# define deflateSetDictionary z_deflateSetDictionary
# define deflateSetHeader z_deflateSetHeader
# define deflateTune z_deflateTune
# define deflate_copyright z_deflate_copyright
# define get_crc_table z_get_crc_table
# define inflate z_inflate
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
...
...
@@ -40,6 +61,8 @@
# define inflateCodesUsed z_inflateCodesUsed
# define inflateCopy z_inflateCopy
# define inflateEnd z_inflateEnd
# define inflateGetDictionary z_inflateGetDictionary
# define inflateGetHeader z_inflateGetHeader
# define inflateInit z_inflateInit
# define inflateInit2 z_inflateInit2
# define inflateInit2_ z_inflateInit2_
...
...
@@ -49,9 +72,17 @@
# define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2
# define inflateResetKeep z_inflateResetKeep
# define inflateSetDictionary z_inflateSetDictionary
# define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine
# define inflateValidate z_inflateValidate
# define inflate_copyright z_inflate_copyright
# define inflate_fast z_inflate_fast
# define inflate_table z_inflate_table
# define zError z_zError
# define zlibCompileFlags z_zlibCompileFlags
# define zlibVersion z_zlibVersion
/* all zlib typedefs in zlib.h and zconf.h */
# define Byte z_Byte
...
...
deps/zlib-1.2.11/zlib.h
View file @
b2197e5d
...
...
@@ -908,6 +908,41 @@ ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,
stream state is inconsistent.
*/
ZEXTERN
int
ZEXPORT
inflateSync
OF
((
z_streamp
strm
));
/*
Skips invalid compressed data until a possible full flush point (see above
for the description of deflate with Z_FULL_FLUSH) can be found, or until all
available input is skipped. No output is provided.
inflateSync searches for a 00 00 FF FF pattern in the compressed data.
All full flush points have this pattern, but not all occurrences of this
pattern are full flush points.
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.
*/
ZEXTERN
int
ZEXPORT
inflateCopy
OF
((
z_streamp
dest
,
z_streamp
source
));
/*
Sets the destination stream as a complete copy of the source stream.
This function can be useful when randomly accessing a large stream. The
first pass through the stream can periodically record the inflate state,
allowing restarting inflate at those points when randomly accessing the
stream.
inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
(such as zalloc being Z_NULL). msg is left unchanged in both source and