diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/blenlib/intern/hash_mm2a.c | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/blenlib/intern/hash_mm2a.c')
-rw-r--r-- | source/blender/blenlib/intern/hash_mm2a.c | 144 |
1 files changed, 73 insertions, 71 deletions
diff --git a/source/blender/blenlib/intern/hash_mm2a.c b/source/blender/blenlib/intern/hash_mm2a.c index ff604110f2b..ee4a6329f64 100644 --- a/source/blender/blenlib/intern/hash_mm2a.c +++ b/source/blender/blenlib/intern/hash_mm2a.c @@ -32,109 +32,111 @@ #include "BLI_compiler_attrs.h" -#include "BLI_hash_mm2a.h" /* own include */ +#include "BLI_hash_mm2a.h" /* own include */ /* Helpers. */ #define MM2A_M 0x5bd1e995 -#define MM2A_MIX(h, k) \ -{ \ - (k) *= MM2A_M; \ - (k) ^= (k) >> 24; \ - (k) *= MM2A_M; \ - (h) = ((h) * MM2A_M) ^ (k); \ -} (void)0 - -#define MM2A_MIX_FINALIZE(h) \ -{ \ - (h) ^= (h) >> 13; \ - (h) *= MM2A_M; \ - (h) ^= (h) >> 15; \ -} (void)0 +#define MM2A_MIX(h, k) \ + { \ + (k) *= MM2A_M; \ + (k) ^= (k) >> 24; \ + (k) *= MM2A_M; \ + (h) = ((h)*MM2A_M) ^ (k); \ + } \ + (void)0 + +#define MM2A_MIX_FINALIZE(h) \ + { \ + (h) ^= (h) >> 13; \ + (h) *= MM2A_M; \ + (h) ^= (h) >> 15; \ + } \ + (void)0 static void mm2a_mix_tail(BLI_HashMurmur2A *mm2, const unsigned char **data, size_t *len) { - while (*len && ((*len < 4) || mm2->count)) { - mm2->tail |= (uint32_t)(**data) << (mm2->count * 8); - - mm2->count++; - (*len)--; - (*data)++; - - if (mm2->count == 4) { - MM2A_MIX(mm2->hash, mm2->tail); - mm2->tail = 0; - mm2->count = 0; - } - } + while (*len && ((*len < 4) || mm2->count)) { + mm2->tail |= (uint32_t)(**data) << (mm2->count * 8); + + mm2->count++; + (*len)--; + (*data)++; + + if (mm2->count == 4) { + MM2A_MIX(mm2->hash, mm2->tail); + mm2->tail = 0; + mm2->count = 0; + } + } } void BLI_hash_mm2a_init(BLI_HashMurmur2A *mm2, uint32_t seed) { - mm2->hash = seed; - mm2->tail = 0; - mm2->count = 0; - mm2->size = 0; + mm2->hash = seed; + mm2->tail = 0; + mm2->count = 0; + mm2->size = 0; } void BLI_hash_mm2a_add(BLI_HashMurmur2A *mm2, const unsigned char *data, size_t len) { - mm2->size += (uint32_t)len; + mm2->size += (uint32_t)len; - mm2a_mix_tail(mm2, &data, &len); + mm2a_mix_tail(mm2, &data, &len); - for (; len >= 4; data += 4, len -= 4) { - uint32_t k = *(const uint32_t *)data; + for (; len >= 4; data += 4, len -= 4) { + uint32_t k = *(const uint32_t *)data; - MM2A_MIX(mm2->hash, k); - } + MM2A_MIX(mm2->hash, k); + } - mm2a_mix_tail(mm2, &data, &len); + mm2a_mix_tail(mm2, &data, &len); } void BLI_hash_mm2a_add_int(BLI_HashMurmur2A *mm2, int data) { - BLI_hash_mm2a_add(mm2, (const unsigned char *)&data, sizeof(data)); + BLI_hash_mm2a_add(mm2, (const unsigned char *)&data, sizeof(data)); } uint32_t BLI_hash_mm2a_end(BLI_HashMurmur2A *mm2) { - MM2A_MIX(mm2->hash, mm2->tail); - MM2A_MIX(mm2->hash, mm2->size); + MM2A_MIX(mm2->hash, mm2->tail); + MM2A_MIX(mm2->hash, mm2->size); - MM2A_MIX_FINALIZE(mm2->hash); + MM2A_MIX_FINALIZE(mm2->hash); - return mm2->hash; + return mm2->hash; } /* Non-incremental version, quicker for small keys. */ uint32_t BLI_hash_mm2(const unsigned char *data, size_t len, uint32_t seed) { - /* Initialize the hash to a 'random' value */ - uint32_t h = seed ^ len; - - /* Mix 4 bytes at a time into the hash */ - for (; len >= 4; data += 4, len -= 4) { - uint32_t k = *(uint32_t *)data; - - MM2A_MIX(h, k); - } - - /* Handle the last few bytes of the input array */ - switch (len) { - case 3: - h ^= data[2] << 16; - ATTR_FALLTHROUGH; - case 2: - h ^= data[1] << 8; - ATTR_FALLTHROUGH; - case 1: - h ^= data[0]; - h *= MM2A_M; - } - - /* Do a few final mixes of the hash to ensure the last few bytes are well-incorporated. */ - MM2A_MIX_FINALIZE(h); - - return h; + /* Initialize the hash to a 'random' value */ + uint32_t h = seed ^ len; + + /* Mix 4 bytes at a time into the hash */ + for (; len >= 4; data += 4, len -= 4) { + uint32_t k = *(uint32_t *)data; + + MM2A_MIX(h, k); + } + + /* Handle the last few bytes of the input array */ + switch (len) { + case 3: + h ^= data[2] << 16; + ATTR_FALLTHROUGH; + case 2: + h ^= data[1] << 8; + ATTR_FALLTHROUGH; + case 1: + h ^= data[0]; + h *= MM2A_M; + } + + /* Do a few final mixes of the hash to ensure the last few bytes are well-incorporated. */ + MM2A_MIX_FINALIZE(h); + + return h; } |