diff options
author | Matthew Dempsky <mdempsky@google.com> | 2013-07-08 17:47:57 (GMT) |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2013-07-08 17:49:49 (GMT) |
commit | e0e12debf82124012ba84e13fe6662c812bba8b1 (patch) | |
tree | fa5e8701d0151ed38004e0c61fbd3532bbc2e98e /src/hash_map.h | |
parent | 1f7fa18dea3a57653811f75072871da08d1cff7b (diff) | |
download | Ninja-e0e12debf82124012ba84e13fe6662c812bba8b1.zip Ninja-e0e12debf82124012ba84e13fe6662c812bba8b1.tar.gz Ninja-e0e12debf82124012ba84e13fe6662c812bba8b1.tar.bz2 |
Fix murmur hash implementations to work on strict alignment
architectures like OpenBSD/mips64el and OpenBSD/hppa64.
Diffstat (limited to 'src/hash_map.h')
-rw-r--r-- | src/hash_map.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/hash_map.h b/src/hash_map.h index 076f6c0..919b6fc 100644 --- a/src/hash_map.h +++ b/src/hash_map.h @@ -15,6 +15,7 @@ #ifndef NINJA_MAP_H_ #define NINJA_MAP_H_ +#include <string.h> #include "string_piece.h" // MurmurHash2, by Austin Appleby @@ -26,7 +27,8 @@ unsigned int MurmurHash2(const void* key, size_t len) { unsigned int h = seed ^ len; const unsigned char * data = (const unsigned char *)key; while (len >= 4) { - unsigned int k = *(unsigned int *)data; + unsigned int k; + memcpy(&k, data, sizeof k); k *= m; k ^= k >> r; k *= m; |