X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmurmur_hash.c;h=f1c3267c53844ee903889d913fba3e0f8b95797d;hb=ae08249421c63be6a7cd0dfc52ec1caeb5f6de8e;hp=edb9e7772afe8191801185aff9f8ae393b3440da;hpb=73ab14c882ca0f2b7112ab4cd9dfb16d5f41916e;p=awesomized%2Flibmemcached diff --git a/libmemcached/murmur_hash.c b/libmemcached/murmur_hash.c index edb9e777..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 unsigned int seed= (0xdeadbeef * length); + const uint32_t seed= (0xdeadbeef * (uint32_t)length); const int r= 24; // Initialize the hash to a 'random' value - unsigned int 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; @@ -72,5 +72,5 @@ uint32_t murmur_hash(const char *key, size_t length) h *= m; h ^= h >> 15; - return h; + return (uint32_t) h; }