patty/src/hash.c

21 lines
379 B
C
Raw Normal View History

2015-07-20 16:27:17 -05:00
#include <stdlib.h>
#include <string.h>
#include <patty/hash.h>
uint32_t patty_hash(void *key, size_t size) {
2015-07-28 02:16:56 +00:00
uint32_t hash = 0xffffffdf, i;
2015-07-20 16:27:17 -05:00
for (i=0; i<size; i++) {
hash += ((uint8_t *)key)[i];
hash += (hash << 10);
hash ^= (hash >> 6);
}
2020-06-07 02:46:12 -04:00
hash += (hash << 3);
2015-07-20 16:27:17 -05:00
hash ^= (hash >> 11);
hash += (hash << 15);
return hash;
}