util: use crc32_z instead of crc32 and bump zlib dep to 1.2.9

1.2.9 has been released in January 2017, so let's assume
we'll find it everywhere.

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27311>
This commit is contained in:
David Heidelberg
2024-01-26 23:38:24 +01:00
committed by Marge Bot
parent 56f31d1847
commit 010272b62e
2 changed files with 9 additions and 13 deletions

View File

@@ -1537,7 +1537,7 @@ else
dep_clock = cc.find_library('rt')
endif
dep_zlib = dependency('zlib', version : '>= 1.2.3',
dep_zlib = dependency('zlib', version : '>= 1.2.9',
allow_fallback: true,
required : get_option('zlib'))
if dep_zlib.found()

View File

@@ -33,10 +33,15 @@
*/
#include "crc32.h"
#ifdef HAVE_ZLIB
#include <zlib.h>
#endif
#include "crc32.h"
uint32_t
util_hash_crc32(const void *data, size_t size)
{
return ~crc32_z(0, data, size);
}
#else
static const uint32_t
@@ -117,18 +122,9 @@ util_hash_crc32(const void *data, size_t size)
const uint8_t *p = data;
uint32_t crc = 0xffffffff;
#ifdef HAVE_ZLIB
/* Prefer zlib's implementation for better performance.
* zlib's uInt is always "unsigned int" while size_t can be 64bit.
* Since 1.2.9 there's crc32_z that takes size_t, but use the more
* available function to avoid build system complications.
*/
if ((uInt)size == size)
return ~crc32(0, data, size);
#endif
while (size--)
crc = util_crc32_table[(crc ^ *p++) & 0xff] ^ (crc >> 8);
return crc;
}
#endif