23 add_hash(
size_t start,
const PN_uint8 *bytes,
size_t num_bytes) {
24 size_t num_words = num_bytes >> 2;
25 size_t remaining_bytes = num_bytes - (num_words << 2);
26 size_t hash = (size_t)hashword((
const PN_uint32 *)bytes, num_words, (PN_uint32)start);
28 switch (remaining_bytes) {
32 remaining = (bytes[num_bytes - 3] << 16) | (bytes[num_bytes - 2] << 8) | (bytes[num_bytes - 1]);
33 hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash);
40 remaining = (bytes[num_bytes - 2] << 8) | (bytes[num_bytes - 1]);
41 hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash);
48 remaining = (bytes[num_bytes - 1]);
49 hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash);
static size_t add_hash(size_t start, const PN_uint32 *words, size_t num_words)
Adds a linear sequence of uint32 words to the hash.