12 #ifndef FALLTHROUGH_INTENDED 13 #define FALLTHROUGH_INTENDED do { } while (0) 18 uint32_t
Hash(
const char* data,
size_t n, uint32_t seed) {
20 const uint32_t m = 0xc6a4a793;
21 const uint32_t r = 24;
22 const char* limit = data + n;
23 uint32_t h = seed ^ (n * m);
26 while (data + 4 <= limit) {
35 switch (limit - data) {
37 h +=
static_cast<unsigned char>(data[2]) << 16;
40 h +=
static_cast<unsigned char>(data[1]) << 8;
43 h +=
static_cast<unsigned char>(data[0]);
#define FALLTHROUGH_INTENDED
uint32_t Hash(const char *data, size_t n, uint32_t seed)
uint32_t DecodeFixed32(const char *ptr)