Index: common/lib/libc/hash/murmurhash/murmurhash.c =================================================================== RCS file: /cvsroot/src/common/lib/libc/hash/murmurhash/murmurhash.c,v retrieving revision 1.6 diff -u -r1.6 murmurhash.c --- common/lib/libc/hash/murmurhash/murmurhash.c 26 Oct 2013 21:06:38 -0000 1.6 +++ common/lib/libc/hash/murmurhash/murmurhash.c 16 Aug 2019 12:35:24 -0000 @@ -49,39 +49,20 @@ const uint8_t *data = key; uint32_t h = seed ^ (uint32_t)len; - if (__predict_true(ALIGNED_POINTER(key, uint32_t))) { - while (len >= sizeof(uint32_t)) { - uint32_t k = *(const uint32_t *)data; - - k *= m; - k ^= k >> r; - k *= m; - - h *= m; - h ^= k; - - data += sizeof(uint32_t); - len -= sizeof(uint32_t); - } - } else { - while (len >= sizeof(uint32_t)) { - uint32_t k; - - k = data[0]; - k |= data[1] << 8; - k |= data[2] << 16; - k |= data[3] << 24; - - k *= m; - k ^= k >> r; - k *= m; - - h *= m; - h ^= k; - - data += sizeof(uint32_t); - len -= sizeof(uint32_t); - } + while (len >= sizeof(uint32_t)) { + uint32_t k; + + memset(&k, data, sizeof(k)); + + k *= m; + k ^= k >> r; + k *= m; + + h *= m; + h ^= k; + + data += sizeof(uint32_t); + len -= sizeof(uint32_t); } /* Handle the last few bytes of the input array. */