X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmurmur_hash.c;h=f1c3267c53844ee903889d913fba3e0f8b95797d;hb=c204651e1ee8185224ccc78bd68801ab43740844;hp=b95134408d287270b17508af10f2325f9d6035c4;hpb=31079a798f38d56476c644a7ec596a600fb01930;p=awesomized%2Flibmemcached diff --git a/libmemcached/murmur_hash.c b/libmemcached/murmur_hash.c index b9513440..f1c3267c 100644 --- a/libmemcached/murmur_hash.c +++ b/libmemcached/murmur_hash.c @@ -25,13 +25,13 @@ uint32_t murmur_hash(const char *key, size_t length) */ const unsigned int m= 0x5bd1e995; - const size_t seed= (0xdeadbeef * length); + const uint32_t seed= (0xdeadbeef * (uint32_t)length); const int r= 24; // Initialize the hash to a 'random' value - size_t h= seed ^ length; + uint32_t h= seed ^ (uint32_t)length; // Mix 4 bytes at a time into the hash @@ -56,8 +56,8 @@ uint32_t murmur_hash(const char *key, size_t length) switch(length) { - case 3: h ^= data[2] << 16; - case 2: h ^= data[1] << 8; + case 3: h ^= ((uint32_t)data[2]) << 16; + case 2: h ^= ((uint32_t)data[1]) << 8; case 1: h ^= data[0]; h *= m; default: break;