mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-14 16:40:40 +00:00
Update miniz from 2.0.8 to 2.1.0--not much of a change
git-svn-id: https://svn.eduke32.com/eduke32@7703 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
87b136eb79
commit
dc62b986e8
6 changed files with 78 additions and 19 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* miniz.c 2.0.8 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing
|
/* miniz.c 2.1.0 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing
|
||||||
See "unlicense" statement at the end of this file.
|
See "unlicense" statement at the end of this file.
|
||||||
Rich Geldreich <richgel99@gmail.com>, last updated Oct. 13, 2013
|
Rich Geldreich <richgel99@gmail.com>, last updated Oct. 13, 2013
|
||||||
Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt
|
Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
zlib replacement in many apps:
|
zlib replacement in many apps:
|
||||||
The z_stream struct, optional memory allocation callbacks
|
The z_stream struct, optional memory allocation callbacks
|
||||||
deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound
|
deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound
|
||||||
inflateInit/inflateInit2/inflate/inflateEnd
|
inflateInit/inflateInit2/inflate/inflateReset/inflateEnd
|
||||||
compress, compress2, compressBound, uncompress
|
compress, compress2, compressBound, uncompress
|
||||||
CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines.
|
CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines.
|
||||||
Supports raw deflate streams or standard zlib streams with adler-32 checking.
|
Supports raw deflate streams or standard zlib streams with adler-32 checking.
|
||||||
|
@ -170,12 +170,16 @@
|
||||||
#define MINIZ_LITTLE_ENDIAN 0
|
#define MINIZ_LITTLE_ENDIAN 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */
|
||||||
|
#if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES)
|
||||||
#if MINIZ_X86_OR_X64_CPU
|
#if MINIZ_X86_OR_X64_CPU
|
||||||
/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */
|
/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */
|
||||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
|
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
|
||||||
|
#define MINIZ_UNALIGNED_USE_MEMCPY
|
||||||
#else
|
#else
|
||||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
|
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__)
|
#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__)
|
||||||
/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). */
|
/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). */
|
||||||
|
@ -234,11 +238,11 @@ enum
|
||||||
MZ_DEFAULT_COMPRESSION = -1
|
MZ_DEFAULT_COMPRESSION = -1
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MZ_VERSION "10.0.3"
|
#define MZ_VERSION "10.1.0"
|
||||||
#define MZ_VERNUM 0xA030
|
#define MZ_VERNUM 0xA100
|
||||||
#define MZ_VER_MAJOR 10
|
#define MZ_VER_MAJOR 10
|
||||||
#define MZ_VER_MINOR 0
|
#define MZ_VER_MINOR 1
|
||||||
#define MZ_VER_REVISION 3
|
#define MZ_VER_REVISION 0
|
||||||
#define MZ_VER_SUBREVISION 0
|
#define MZ_VER_SUBREVISION 0
|
||||||
|
|
||||||
#ifndef MINIZ_NO_ZLIB_APIS
|
#ifndef MINIZ_NO_ZLIB_APIS
|
||||||
|
@ -361,6 +365,9 @@ int mz_inflateInit(mz_streamp pStream);
|
||||||
/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */
|
/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */
|
||||||
int mz_inflateInit2(mz_streamp pStream, int window_bits);
|
int mz_inflateInit2(mz_streamp pStream, int window_bits);
|
||||||
|
|
||||||
|
/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_inflateEnd() followed by mz_inflateInit()/mz_inflateInit2(). */
|
||||||
|
int mz_inflateReset(mz_streamp pStream);
|
||||||
|
|
||||||
/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. */
|
/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. */
|
||||||
/* Parameters: */
|
/* Parameters: */
|
||||||
/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */
|
/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */
|
||||||
|
@ -444,6 +451,7 @@ typedef void *const voidpc;
|
||||||
#define compressBound mz_compressBound
|
#define compressBound mz_compressBound
|
||||||
#define inflateInit mz_inflateInit
|
#define inflateInit mz_inflateInit
|
||||||
#define inflateInit2 mz_inflateInit2
|
#define inflateInit2 mz_inflateInit2
|
||||||
|
#define inflateReset mz_inflateReset
|
||||||
#define inflate mz_inflate
|
#define inflate mz_inflate
|
||||||
#define inflateEnd mz_inflateEnd
|
#define inflateEnd mz_inflateEnd
|
||||||
#define uncompress mz_uncompress
|
#define uncompress mz_uncompress
|
||||||
|
|
|
@ -177,11 +177,13 @@ mz_uint32 tdefl_get_adler32(tdefl_compressor *d);
|
||||||
/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */
|
/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */
|
||||||
mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy);
|
mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy);
|
||||||
|
|
||||||
|
#ifndef MINIZ_NO_MALLOC
|
||||||
/* Allocate the tdefl_compressor structure in C so that */
|
/* Allocate the tdefl_compressor structure in C so that */
|
||||||
/* non-C language bindings to tdefl_ API don't need to worry about */
|
/* non-C language bindings to tdefl_ API don't need to worry about */
|
||||||
/* structure size and allocation mechanism. */
|
/* structure size and allocation mechanism. */
|
||||||
tdefl_compressor *tdefl_compressor_alloc();
|
tdefl_compressor *tdefl_compressor_alloc(void);
|
||||||
void tdefl_compressor_free(tdefl_compressor *pComp);
|
void tdefl_compressor_free(tdefl_compressor *pComp);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,12 +41,13 @@ int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size,
|
||||||
struct tinfl_decompressor_tag;
|
struct tinfl_decompressor_tag;
|
||||||
typedef struct tinfl_decompressor_tag tinfl_decompressor;
|
typedef struct tinfl_decompressor_tag tinfl_decompressor;
|
||||||
|
|
||||||
|
#ifndef MINIZ_NO_MALLOC
|
||||||
/* Allocate the tinfl_decompressor structure in C so that */
|
/* Allocate the tinfl_decompressor structure in C so that */
|
||||||
/* non-C language bindings to tinfl_ API don't need to worry about */
|
/* non-C language bindings to tinfl_ API don't need to worry about */
|
||||||
/* structure size and allocation mechanism. */
|
/* structure size and allocation mechanism. */
|
||||||
|
tinfl_decompressor *tinfl_decompressor_alloc(void);
|
||||||
tinfl_decompressor *tinfl_decompressor_alloc();
|
|
||||||
void tinfl_decompressor_free(tinfl_decompressor *pDecomp);
|
void tinfl_decompressor_free(tinfl_decompressor *pDecomp);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Max size of LZ dictionary. */
|
/* Max size of LZ dictionary. */
|
||||||
#define TINFL_LZ_DICT_SIZE 32768
|
#define TINFL_LZ_DICT_SIZE 32768
|
||||||
|
|
|
@ -401,6 +401,32 @@ int mz_inflateInit(mz_streamp pStream)
|
||||||
return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS);
|
return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int mz_inflateReset(mz_streamp pStream)
|
||||||
|
{
|
||||||
|
inflate_state *pDecomp;
|
||||||
|
if (!pStream)
|
||||||
|
return MZ_STREAM_ERROR;
|
||||||
|
|
||||||
|
pStream->data_type = 0;
|
||||||
|
pStream->adler = 0;
|
||||||
|
pStream->msg = NULL;
|
||||||
|
pStream->total_in = 0;
|
||||||
|
pStream->total_out = 0;
|
||||||
|
pStream->reserved = 0;
|
||||||
|
|
||||||
|
pDecomp = (inflate_state *)pStream->state;
|
||||||
|
|
||||||
|
tinfl_init(&pDecomp->m_decomp);
|
||||||
|
pDecomp->m_dict_ofs = 0;
|
||||||
|
pDecomp->m_dict_avail = 0;
|
||||||
|
pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT;
|
||||||
|
pDecomp->m_first_call = 1;
|
||||||
|
pDecomp->m_has_flushed = 0;
|
||||||
|
/* pDecomp->m_window_bits = window_bits */;
|
||||||
|
|
||||||
|
return MZ_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int mz_inflate(mz_streamp pStream, int flush)
|
int mz_inflate(mz_streamp pStream, int flush)
|
||||||
{
|
{
|
||||||
inflate_state *pState;
|
inflate_state *pState;
|
||||||
|
|
|
@ -738,17 +738,17 @@ static int tdefl_flush_block(tdefl_compressor *d, int flush)
|
||||||
|
|
||||||
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
|
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
|
||||||
#ifdef MINIZ_UNALIGNED_USE_MEMCPY
|
#ifdef MINIZ_UNALIGNED_USE_MEMCPY
|
||||||
static inline mz_uint16 TDEFL_READ_UNALIGNED_WORD(const mz_uint8* p)
|
static mz_uint16 TDEFL_READ_UNALIGNED_WORD(const mz_uint8* p)
|
||||||
{
|
{
|
||||||
mz_uint16 ret;
|
mz_uint16 ret;
|
||||||
memcpy(&ret, p, sizeof(mz_uint16));
|
memcpy(&ret, p, sizeof(mz_uint16));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
static inline mz_uint16 TDEFL_READ_UNALIGNED_WORD2(const mz_uint16* p)
|
static mz_uint16 TDEFL_READ_UNALIGNED_WORD2(const mz_uint16* p)
|
||||||
{
|
{
|
||||||
mz_uint16 ret;
|
mz_uint16 ret;
|
||||||
memcpy(&ret, p, sizeof(mz_uint16));
|
memcpy(&ret, p, sizeof(mz_uint16));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16 *)(p)
|
#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16 *)(p)
|
||||||
|
@ -853,6 +853,16 @@ static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahe
|
||||||
#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES */
|
#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES */
|
||||||
|
|
||||||
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
|
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
|
||||||
|
#ifdef MINIZ_UNALIGNED_USE_MEMCPY
|
||||||
|
static mz_uint32 TDEFL_READ_UNALIGNED_WORD32(const mz_uint8* p)
|
||||||
|
{
|
||||||
|
mz_uint32 ret;
|
||||||
|
memcpy(&ret, p, sizeof(mz_uint32));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define TDEFL_READ_UNALIGNED_WORD32(p) *(const mz_uint32 *)(p)
|
||||||
|
#endif
|
||||||
static mz_bool tdefl_compress_fast(tdefl_compressor *d)
|
static mz_bool tdefl_compress_fast(tdefl_compressor *d)
|
||||||
{
|
{
|
||||||
/* Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. */
|
/* Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. */
|
||||||
|
@ -887,12 +897,12 @@ static mz_bool tdefl_compress_fast(tdefl_compressor *d)
|
||||||
{
|
{
|
||||||
mz_uint cur_match_dist, cur_match_len = 1;
|
mz_uint cur_match_dist, cur_match_len = 1;
|
||||||
mz_uint8 *pCur_dict = d->m_dict + cur_pos;
|
mz_uint8 *pCur_dict = d->m_dict + cur_pos;
|
||||||
mz_uint first_trigram = (*(const mz_uint32 *)pCur_dict) & 0xFFFFFF;
|
mz_uint first_trigram = TDEFL_READ_UNALIGNED_WORD32(pCur_dict) & 0xFFFFFF;
|
||||||
mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK;
|
mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK;
|
||||||
mz_uint probe_pos = d->m_hash[hash];
|
mz_uint probe_pos = d->m_hash[hash];
|
||||||
d->m_hash[hash] = (mz_uint16)lookahead_pos;
|
d->m_hash[hash] = (mz_uint16)lookahead_pos;
|
||||||
|
|
||||||
if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram))
|
if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((TDEFL_READ_UNALIGNED_WORD32(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram))
|
||||||
{
|
{
|
||||||
const mz_uint16 *p = (const mz_uint16 *)pCur_dict;
|
const mz_uint16 *p = (const mz_uint16 *)pCur_dict;
|
||||||
const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos);
|
const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos);
|
||||||
|
@ -922,7 +932,11 @@ static mz_bool tdefl_compress_fast(tdefl_compressor *d)
|
||||||
cur_match_dist--;
|
cur_match_dist--;
|
||||||
|
|
||||||
pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN);
|
pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN);
|
||||||
|
#ifdef MINIZ_UNALIGNED_USE_MEMCPY
|
||||||
|
memcpy(&pLZ_code_buf[1], &cur_match_dist, sizeof(cur_match_dist));
|
||||||
|
#else
|
||||||
*(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist;
|
*(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist;
|
||||||
|
#endif
|
||||||
pLZ_code_buf += 3;
|
pLZ_code_buf += 3;
|
||||||
*pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80);
|
*pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80);
|
||||||
|
|
||||||
|
@ -1541,6 +1555,7 @@ void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h,
|
||||||
return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE);
|
return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MINIZ_NO_MALLOC
|
||||||
/* Allocate the tdefl_compressor and tinfl_decompressor structures in C so that */
|
/* Allocate the tdefl_compressor and tinfl_decompressor structures in C so that */
|
||||||
/* non-C language bindings to tdefL_ and tinfl_ API don't need to worry about */
|
/* non-C language bindings to tdefL_ and tinfl_ API don't need to worry about */
|
||||||
/* structure size and allocation mechanism. */
|
/* structure size and allocation mechanism. */
|
||||||
|
@ -1553,6 +1568,7 @@ void tdefl_compressor_free(tdefl_compressor *pComp)
|
||||||
{
|
{
|
||||||
MZ_FREE(pComp);
|
MZ_FREE(pComp);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
|
|
|
@ -523,8 +523,12 @@ tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_nex
|
||||||
const mz_uint8 *pSrc_end = pSrc + (counter & ~7);
|
const mz_uint8 *pSrc_end = pSrc + (counter & ~7);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
#ifdef MINIZ_UNALIGNED_USE_MEMCPY
|
||||||
|
memcpy(pOut_buf_cur, pSrc, sizeof(mz_uint32)*2);
|
||||||
|
#else
|
||||||
((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0];
|
((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0];
|
||||||
((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1];
|
((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1];
|
||||||
|
#endif
|
||||||
pOut_buf_cur += 8;
|
pOut_buf_cur += 8;
|
||||||
} while ((pSrc += 8) < pSrc_end);
|
} while ((pSrc += 8) < pSrc_end);
|
||||||
if ((counter &= 7) < 3)
|
if ((counter &= 7) < 3)
|
||||||
|
@ -716,6 +720,7 @@ int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MINIZ_NO_MALLOC
|
||||||
tinfl_decompressor *tinfl_decompressor_alloc()
|
tinfl_decompressor *tinfl_decompressor_alloc()
|
||||||
{
|
{
|
||||||
tinfl_decompressor *pDecomp = (tinfl_decompressor *)MZ_MALLOC(sizeof(tinfl_decompressor));
|
tinfl_decompressor *pDecomp = (tinfl_decompressor *)MZ_MALLOC(sizeof(tinfl_decompressor));
|
||||||
|
@ -728,6 +733,7 @@ void tinfl_decompressor_free(tinfl_decompressor *pDecomp)
|
||||||
{
|
{
|
||||||
MZ_FREE(pDecomp);
|
MZ_FREE(pDecomp);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue