ext/digest/murmurhash/murmurhash64a.c in digest-murmurhash-0.3.0 vs ext/digest/murmurhash/murmurhash64a.c in digest-murmurhash-1.0.0

- old
+ new

@@ -5,83 +5,71 @@ #include "murmurhash64a.h" static uint64_t murmur_hash_process64a(const char *key, uint32_t len, uint64_t seed) { - const uint64_t m = MURMURHASH_MAGIC64A; - const int r = 47; + const uint64_t m = MURMURHASH_MAGIC64A; + const int r = 47; - uint64_t h = seed ^ (len * m); + uint64_t h = seed ^ (len * m); - const uint64_t * data = (const uint64_t *)key; - const uint64_t * end = data + (len/8); + const uint64_t * data = (const uint64_t *)key; + const uint64_t * end = data + (len/8); - while(data != end) - { - uint64_t k = *data++; + while(data != end) + { + uint64_t k = *data++; - k *= m; - k ^= k >> r; - k *= m; + k *= m; + k ^= k >> r; + k *= m; - h ^= k; - h *= m; - } + h ^= k; + h *= m; + } - const unsigned char * data2 = (const unsigned char*)data; + const unsigned char * data2 = (const unsigned char*)data; - switch(len & 7) { - case 7: h ^= (uint64_t)((uint64_t)data2[6] << (uint64_t)48); - case 6: h ^= (uint64_t)((uint64_t)data2[5] << (uint64_t)40); - case 5: h ^= (uint64_t)((uint64_t)data2[4] << (uint64_t)32); - case 4: h ^= (uint64_t)((uint64_t)data2[3] << (uint64_t)24); - case 3: h ^= (uint64_t)((uint64_t)data2[2] << (uint64_t)16); - case 2: h ^= (uint64_t)((uint64_t)data2[1] << (uint64_t)8 ); - case 1: h ^= (uint64_t)((uint64_t)data2[0] ); - h *= m; - }; + switch(len & 7) { + case 7: h ^= (uint64_t)((uint64_t)data2[6] << (uint64_t)48); + case 6: h ^= (uint64_t)((uint64_t)data2[5] << (uint64_t)40); + case 5: h ^= (uint64_t)((uint64_t)data2[4] << (uint64_t)32); + case 4: h ^= (uint64_t)((uint64_t)data2[3] << (uint64_t)24); + case 3: h ^= (uint64_t)((uint64_t)data2[2] << (uint64_t)16); + case 2: h ^= (uint64_t)((uint64_t)data2[1] << (uint64_t)8 ); + case 1: h ^= (uint64_t)((uint64_t)data2[0] ); + h *= m; + }; - h ^= h >> r; - h *= m; - h ^= h >> r; + h ^= h >> r; + h *= m; + h ^= h >> r; - return h; + return h; } VALUE murmur64a_finish(VALUE self) { - uint8_t digest[8]; - uint64_t h; + uint8_t digest[8]; + uint64_t h; - h = _murmur_finish64(self, murmur_hash_process64a); - ASSINE_BY_ENDIAN_64(digest, h); - return rb_str_new((const char*) digest, 8); + h = _murmur_finish64(self, murmur_hash_process64a); + assign_by_endian_64(digest, h); + return rb_str_new((const char*) digest, 8); } VALUE -murmur64a_to_i(VALUE self) -{ - return ULL2NUM(_murmur_finish64(self, murmur_hash_process64a)); -} - -VALUE murmur64a_s_digest(int argc, VALUE *argv, VALUE klass) { - uint8_t digest[8]; - uint64_t h; - h = _murmur_s_digest64(argc, argv, klass, murmur_hash_process64a); - ASSINE_BY_ENDIAN_64(digest, h); - return rb_str_new((const char*) digest, 8); + uint8_t digest[8]; + uint64_t h; + h = _murmur_s_digest64(argc, argv, klass, murmur_hash_process64a); + assign_by_endian_64(digest, h); + return rb_str_new((const char*) digest, 8); } VALUE -murmur64a_s_hexdigest(int argc, VALUE *argv, VALUE klass) -{ - return hexencode_str_new(murmur64a_s_digest(argc, argv, klass)); -} - -VALUE murmur64a_s_rawdigest(int argc, VALUE *argv, VALUE klass) { - return ULL2NUM(_murmur_s_digest64(argc, argv, klass, murmur_hash_process64a)); + return ULL2NUM(_murmur_s_digest64(argc, argv, klass, murmur_hash_process64a)); }