Merged build.
[m6w6/libmemcached] / libmemcached / jenkins_hash.c
index 409a405400e46e875a4d3ef4e3cb893a57f7fad8..e4aa4f19da0b4535535260516ed0c670c43679a5 100644 (file)
@@ -63,6 +63,7 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
   a = b = c = 0xdeadbeef + ((uint32_t)length) + initval;
 
   u.ptr = key;
+#ifndef WORDS_BIGENDIAN
   if ((u.i & 0x3) == 0)
   {
     const uint32_t *k = (const uint32_t *)key;         /* read 32-bit chunks */
@@ -103,6 +104,7 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
     case 2 : a+=k[0]&0xffff; break;
     case 1 : a+=k[0]&0xff; break;
     case 0 : return c;              /* zero length strings require no mixing */
+    default: return c;
     }
 
   } 
@@ -152,11 +154,13 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
     case 1 : a+=k8[0];
              break;
     case 0 : return c;                     /* zero length requires no mixing */
+    default: return c;
     }
 
   } 
   else
   {                        /* need to read the key one byte at a time */
+#endif /* little endian */
     const uint8_t *k = (const uint8_t *)key;
 
     /*--------------- all but the last block: affect some 32 bits of (a,b,c) */
@@ -196,8 +200,11 @@ uint32_t jenkins_hash(const void *key, size_t length, uint32_t initval)
     case 1 : a+=k[0];
              break;
     case 0 : return c;
+    default : return c;
     }
+#ifndef WORDS_BIGENDIAN
   }
+#endif
 
   final(a,b,c);
   return c;