fix wrong type of memcached_instance_st::server_timeout_counter_query_id
[awesomized/libmemcached] / libhashkit / jenkins.cc
index 77f99f0db8ba99bf692a9300868c18516723c126..2197c4ccc8e320c3ec980bf3c21c10c841ca253b 100644 (file)
@@ -96,12 +96,14 @@ In which case, the hash table should have hashsize(10) elements.
 uint32_t hashkit_jenkins(const char *key, size_t length, void *)
 {
   uint32_t a,b,c;                                          /* internal state */
-  union { const void *ptr; size_t i; } u;     /* needed for Mac Powerbook G4 */
+#ifndef WORDS_BIGENDIAN
+  union { const void *ptr; size_t i; } u;
+  u.ptr = key;
+#endif
 
   /* Set up the internal state */
   a = b = c = 0xdeadbeef + ((uint32_t)length) + JENKINS_INITVAL;
 
-  u.ptr = key;
 #ifndef WORDS_BIGENDIAN
   if ((u.i & 0x3) == 0)
   {
@@ -225,17 +227,17 @@ uint32_t hashkit_jenkins(const char *key, size_t length, void *)
     /*-------------------------------- last block: affect all 32 bits of (c) */
     switch(length)                   /* all the case statements fall through */
     {
-    case 12: c+=((uint32_t)k[11])<<24;
-    case 11: c+=((uint32_t)k[10])<<16;
-    case 10: c+=((uint32_t)k[9])<<8;
-    case 9 : c+=k[8];
-    case 8 : b+=((uint32_t)k[7])<<24;
-    case 7 : b+=((uint32_t)k[6])<<16;
-    case 6 : b+=((uint32_t)k[5])<<8;
-    case 5 : b+=k[4];
-    case 4 : a+=((uint32_t)k[3])<<24;
-    case 3 : a+=((uint32_t)k[2])<<16;
-    case 2 : a+=((uint32_t)k[1])<<8;
+    case 12: c+=((uint32_t)k[11])<<24; /* fall through */
+    case 11: c+=((uint32_t)k[10])<<16; /* fall through */
+    case 10: c+=((uint32_t)k[9])<<8;   /* fall through */
+    case 9 : c+=k[8];                  /* fall through */
+    case 8 : b+=((uint32_t)k[7])<<24;  /* fall through */
+    case 7 : b+=((uint32_t)k[6])<<16;  /* fall through */
+    case 6 : b+=((uint32_t)k[5])<<8;   /* fall through */
+    case 5 : b+=k[4];                  /* fall through */
+    case 4 : a+=((uint32_t)k[3])<<24;  /* fall through */
+    case 3 : a+=((uint32_t)k[2])<<16;  /* fall through */
+    case 2 : a+=((uint32_t)k[1])<<8;   /* fall through */
     case 1 : a+=k[0];
              break;
     case 0 : return c;