Update hasher
Release / release (push) Successful in 3s

This commit is contained in:
2026-09-13 00:20:18 +01:00
parent 6a3326e9a5
commit f3a8045ecc
8 changed files with 150 additions and 168 deletions
+8 -8
View File
@@ -1,16 +1,17 @@
// vim:fileencoding=utf-8:foldmethod=marker
#include "murmur3.h"
#include "hasher.h"
#include "../../../common/aliases/aliases.h"
#include "../../../common/assert/assert.h"
#include "../../../common/misc/misc_utils.h"
wp_intern inline void validateIO(const WpMur3HasherIO *io);
wp_intern inline void validateMur3HasherData(const WpMur3HasherData *io);
wp_intern inline u64 fmix64(u64 k);
void wpX64Mur3Hasher128(WpU8Stream *bytes, void *hasher_io) {
WpMur3HasherIO *io = (WpMur3HasherIO *)hasher_io;
validateIO(io);
WpU128Hash wpX64Mur3Hasher128(WpU8Stream *bytes, void *hasher_io) {
WpMur3HasherData *io = (WpMur3HasherData *)hasher_io;
validateMur3HasherData(io);
const i32 nblocks = (bytes->count * bytes->item_size) / 16;
@@ -91,12 +92,11 @@ void wpX64Mur3Hasher128(WpU8Stream *bytes, void *hasher_io) {
h1 += h2;
h2 += h1;
io->hash[0] = h1;
io->hash[1] = h2;
return (WpU128Hash){ .hash = { [0] = h1, [1] = h2 } };
}
wp_intern inline void validateIO(const WpMur3HasherIO *io) {
wpRuntimeAssert(io->magic == WP_MUR3_HASHER_MAGIC, "Invalid Murmur3 hash IO");
wp_intern inline void validateMur3HasherData(const WpMur3HasherData *data) {
wpRuntimeAssert(data->magic == WP_MUR3_HASHER_MAGIC, "Invalid Murmur3 hash data");
}
wp_intern inline u64 fmix64(u64 k) {