Changeset View
Changeset View
Standalone View
Standalone View
src/hash.cpp
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | if (vDataToHash.size() > 0) { | ||||
// tail | // tail | ||||
const uint8_t *tail = (const uint8_t *)(&vDataToHash[0] + nblocks * 4); | const uint8_t *tail = (const uint8_t *)(&vDataToHash[0] + nblocks * 4); | ||||
uint32_t k1 = 0; | uint32_t k1 = 0; | ||||
switch (vDataToHash.size() & 3) { | switch (vDataToHash.size() & 3) { | ||||
case 3: | case 3: | ||||
k1 ^= tail[2] << 16; | k1 ^= tail[2] << 16; | ||||
// FALLTHROUGH | |||||
case 2: | case 2: | ||||
k1 ^= tail[1] << 8; | k1 ^= tail[1] << 8; | ||||
// FALLTHROUGH | |||||
case 1: | case 1: | ||||
k1 ^= tail[0]; | k1 ^= tail[0]; | ||||
k1 *= c1; | k1 *= c1; | ||||
k1 = ROTL32(k1, 15); | k1 = ROTL32(k1, 15); | ||||
k1 *= c2; | k1 *= c2; | ||||
h1 ^= k1; | h1 ^= k1; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 158 Lines • Show Last 20 Lines |