*/
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
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;
h *= m;
h ^= h >> 15;
- return h;
+ return (uint32_t) h;
}