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:

committed by
Marge Bot

parent
56f31d1847
commit
010272b62e
@@ -1537,7 +1537,7 @@ else
|
|||||||
dep_clock = cc.find_library('rt')
|
dep_clock = cc.find_library('rt')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dep_zlib = dependency('zlib', version : '>= 1.2.3',
|
dep_zlib = dependency('zlib', version : '>= 1.2.9',
|
||||||
allow_fallback: true,
|
allow_fallback: true,
|
||||||
required : get_option('zlib'))
|
required : get_option('zlib'))
|
||||||
if dep_zlib.found()
|
if dep_zlib.found()
|
||||||
|
@@ -33,10 +33,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "crc32.h"
|
||||||
#ifdef HAVE_ZLIB
|
#ifdef HAVE_ZLIB
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
#endif
|
uint32_t
|
||||||
#include "crc32.h"
|
util_hash_crc32(const void *data, size_t size)
|
||||||
|
{
|
||||||
|
return ~crc32_z(0, data, size);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
|
|
||||||
static const uint32_t
|
static const uint32_t
|
||||||
@@ -117,18 +122,9 @@ util_hash_crc32(const void *data, size_t size)
|
|||||||
const uint8_t *p = data;
|
const uint8_t *p = data;
|
||||||
uint32_t crc = 0xffffffff;
|
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--)
|
while (size--)
|
||||||
crc = util_crc32_table[(crc ^ *p++) & 0xff] ^ (crc >> 8);
|
crc = util_crc32_table[(crc ^ *p++) & 0xff] ^ (crc >> 8);
|
||||||
|
|
||||||
return crc;
|
return crc;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
Reference in New Issue
Block a user