X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmurmur_hash.c;h=7cfcaa9eba087559de5c2d371f85bec615c6c460;hb=8f4f53d570ffa167f08912242c1a41d6f314ac0b;hp=ce28ec389cd08a571dd144e21bea3e9479817c13;hpb=01de4afa83a6f906eb666ff23a0888fbb5f4005f;p=awesomized%2Flibmemcached diff --git a/libmemcached/murmur_hash.c b/libmemcached/murmur_hash.c index ce28ec38..7cfcaa9e 100644 --- a/libmemcached/murmur_hash.c +++ b/libmemcached/murmur_hash.c @@ -11,28 +11,24 @@ uint32_t murmur_hash(char *key, size_t length) const uint32_t m= 0x5bd1e995; const int r= 16; uint32_t h= length * m; + uint32_t k = 0; while(length >= 4) { - uint32_t k = *(uint32_t*)key; + k = *(uint32_t*)key; MIX(h,k,m); key += 4; length -= 4; } - if (length) + switch(length) { - uint32_t k= 0; - - switch(length) - { - case 3: k += key[2] << 16; - case 2: k += key[1] << 8; - case 1: k += key[0]; - }; - MIX(h,k,m); - } + case 3: k += key[2] << 16; + case 2: k += key[1] << 8; + case 1: k += key[0]; + MIX(h,k,m); + }; h *= m; h ^= h >> 10;