From bf6025dd72490837e51cfa3d2d703eb7cdade2db Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Mon, 19 Jul 2010 17:31:05 -0700 Subject: [PATCH] Merge in cast fix for H algo --- libhashkit/hsieh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libhashkit/hsieh.c b/libhashkit/hsieh.c index c688add6..ba46ed2c 100644 --- a/libhashkit/hsieh.c +++ b/libhashkit/hsieh.c @@ -43,16 +43,18 @@ uint32_t hashkit_hsieh(const char *key, size_t key_length, void *context __attri { case 3: hash += get16bits (key); hash ^= hash << 16; - hash ^= key[sizeof (uint16_t)] << 18; + hash ^= (uint32_t)key[sizeof (uint16_t)] << 18; hash += hash >> 11; break; case 2: hash += get16bits (key); hash ^= hash << 11; hash += hash >> 17; break; - case 1: hash += *key; + case 1: hash += (unsigned char)(*key); hash ^= hash << 10; hash += hash >> 1; + default: + break; } /* Force "avalanching" of final 127 bits */ -- 2.30.2