X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libhashkit%2Fmurmur3.cc;h=8d86cfd859cca7e11d6afa72055572d75d6965e5;hb=cefa03b14574d23cdd2f9db5ff28f210e697042c;hp=6e2f8ed8db6c773d95d0cd17f2a5fb86a923530c;hpb=c3472bb8e7417a272f8c76c5a1316e3370adc941;p=awesomized%2Flibmemcached diff --git a/libhashkit/murmur3.cc b/libhashkit/murmur3.cc index 6e2f8ed8..8d86cfd8 100644 --- a/libhashkit/murmur3.cc +++ b/libhashkit/murmur3.cc @@ -39,7 +39,13 @@ static FORCE_INLINE uint64_t rotl64 ( uint64_t x, int8_t r ) // Block read - if your platform needs to do endian-swapping or can only // handle aligned reads, do the conversion here -#define getblock(p, i) (p[i]) +#include +template +static inline T getblock(const T *blocks, int i) { + T b; + memcpy(&b, ((const uint8_t *) blocks) + i * sizeof(T), sizeof(T)); + return b; +} //----------------------------------------------------------------------------- // Finalization mix - force all bits of a hash block to avalanche