static uint32_t FNV_32_PRIME= 16777619;
/* Prototypes */
-static uint64_t internal_generate_hash(char *key, size_t key_length);
-static uint64_t internal_generate_md5(char *key, size_t key_length);
-static uint64_t internal_generate_ketama_md5(char *key, size_t key_length);
+static uint32_t internal_generate_hash(char *key, size_t key_length);
+static uint32_t internal_generate_md5(char *key, size_t key_length);
+static uint32_t internal_generate_ketama_md5(char *key, size_t key_length);
unsigned int memcached_generate_hash(memcached_st *ptr, char *key, size_t key_length)
{
- uint64_t hash= 1; /* Just here to remove compile warning */
+ uint32_t hash= 1; /* Just here to remove compile warning */
unsigned int x;
WATCHPOINT_ASSERT(ptr->number_of_hosts);
case MEMCACHED_HASH_FNV1_64:
{
/* Thanks to pierre@demartines.com for the pointer */
- hash= FNV_64_INIT;
+ uint64_t temp_hash;
+
+ temp_hash= FNV_64_INIT;
for (x= 0; x < key_length; x++)
{
- hash *= FNV_64_PRIME;
- hash ^= key[x];
+ temp_hash *= FNV_64_PRIME;
+ temp_hash ^= key[x];
}
+ hash= (uint32_t)temp_hash;
}
break;
case MEMCACHED_HASH_FNV1A_64:
}
}
-static uint64_t internal_generate_hash(char *key, size_t key_length)
+static uint32_t internal_generate_hash(char *key, size_t key_length)
{
char *ptr= key;
- uint64_t value= 0;
+ uint32_t value= 0;
while (--key_length)
{
return value == 0 ? 1 : value;
}
-static uint64_t internal_generate_md5(char *key, size_t key_length)
+static uint32_t internal_generate_md5(char *key, size_t key_length)
{
unsigned char results[16];
md5_signature((unsigned char*)key, (unsigned int)key_length, results);
- return (uint64_t)(( results[3] << 24 )
+ return (uint32_t)(( results[3] << 24 )
| ( results[2] << 16 )
| ( results[1] << 8 )
| results[0] );
}
-static uint64_t internal_generate_ketama_md5(char *key, size_t key_length)
+static uint32_t internal_generate_ketama_md5(char *key, size_t key_length)
{
unsigned char results[16];