projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
libmemcached-1.0: fix #57 (cinttypes/inttypes.h)
[m6w6/libmemcached]
/
libhashkit
/
murmur.cc
diff --git
a/libhashkit/murmur.cc
b/libhashkit/murmur.cc
index e15e5108cfa4a8987a42f92410af23bc797708e8..f3e8fe6ac7eebcca2d92d72e69d19e249aed2934 100644
(file)
--- a/
libhashkit/murmur.cc
+++ b/
libhashkit/murmur.cc
@@
-56,6
+56,8
@@
#ifdef HAVE_MURMUR_HASH
#ifdef HAVE_MURMUR_HASH
+#include <cstring>
+
uint32_t hashkit_murmur(const char *key, size_t length, void *context)
{
/*
uint32_t hashkit_murmur(const char *key, size_t length, void *context)
{
/*
@@
-79,7
+81,8
@@
uint32_t hashkit_murmur(const char *key, size_t length, void *context)
while(length >= 4)
{
while(length >= 4)
{
- unsigned int k = *(unsigned int *)data;
+ unsigned int k;
+ memcpy(&k, data, sizeof(unsigned int));
k *= m;
k ^= k >> r;
k *= m;
k ^= k >> r;
@@
-96,8
+99,8
@@
uint32_t hashkit_murmur(const char *key, size_t length, void *context)
switch(length)
{
switch(length)
{
- case 3: h ^= ((uint32_t)data[2]) << 16;
- case 2: h ^= ((uint32_t)data[1]) << 8;
+ case 3: h ^= ((uint32_t)data[2]) << 16;
/* fall through */
+ case 2: h ^= ((uint32_t)data[1]) << 8;
/* fall through */
case 1: h ^= data[0];
h *= m;
default: break;
case 1: h ^= data[0];
h *= m;
default: break;