From a0dd5179dbcab0f734a8482f1e16efd04d37c2d3 Mon Sep 17 00:00:00 2001 From: jeremyl Date: Wed, 9 Oct 2019 11:30:50 -0700 Subject: [PATCH] Add #elif to enable an external mz_crc32() to be linked in. Adds '#elif defined(USE_EXTERNAL_MZCRC)' by the mz_crc32() definition to enable the option of a user linking in an alternate crc implementation. The main reason why this might be desired would be to use an SSE-accelerated crc implementaiton, which would be faster, but not be reasonable to include in this file. --- miniz.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/miniz.c b/miniz.c index 8c0a3c6..696f8a2 100644 --- a/miniz.c +++ b/miniz.c @@ -82,6 +82,12 @@ mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) } return ~crcu32; } +#elif defined(USE_EXTERNAL_MZCRC) +/* If USE_EXTERNAL_CRC is defined, an external module will export the + * mz_crc32() symbol for us to use, e.g. an SSE-accelerated version. + * Depending on the impl, it may be necessary to ~ the input/output crc values. + */ +mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len); #else /* Faster, but larger CPU cache footprint. */