#include "pazpar2.h"
#include "reclists.h"
-
-extern struct parameters global_parameters;
+#include "jenkins_hash.h"
static struct reclist_sortparms *qsort_sortparms = 0; /* thread pr */
l->pointer = 0;
}
-// Jenkins one-at-a-time hash (from wikipedia)
-static unsigned int hash(const unsigned char *key)
-{
- unsigned int hash = 0;
-
- while (*key)
- {
- hash += *(key++);
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- hash += (hash << 15);
- return hash;
-}
-
struct reclist *reclist_create(NMEM nmem, int numrecs)
{
int hashsize = 1;
assert(merge_key);
assert(total);
- bucket = hash((unsigned char*) merge_key) & l->hashmask;
+ bucket = jenkins_hash((unsigned char*) merge_key) & l->hashmask;
for (p = &l->hashtable[bucket]; *p; p = &(*p)->next)
{