#ifndef _JHASH_H
#define _JHASH_H
+#if defined(__FreeBSD__)
+#include <sys/endian.h>
+#endif
+
/*
* jhash.h
*
* rest of the string. Every machine with memory protection I've seen
* does it on word boundaries, so is OK with this. But VALGRIND will
* still catch it and complain. The masking trick does make the hash
- * noticably faster for short strings (like English words).
+ * noticeably faster for short strings (like English words).
*/
#ifndef VALGRIND
/*-------------------------------- 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;