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;
|
|
|
|
}
|