| 50 | |
| 51 | template <typename Transform> |
| 52 | void |
| 53 | ATSHash32FNV1a::update(const void *data, size_t len, Transform xfrm) |
| 54 | { |
| 55 | uint8_t *bp = (uint8_t *)data; |
| 56 | uint8_t *be = bp + len; |
| 57 | |
| 58 | for (; bp < be; ++bp) { |
| 59 | hval ^= (uint32_t)xfrm(*bp); |
| 60 | hval += (hval << 1) + (hval << 4) + (hval << 7) + (hval << 8) + (hval << 24); |
| 61 | } |
| 62 | } |
| 63 | |
| 64 | struct ATSHash64FNV1a : ATSHash64 { |
| 65 | ATSHash64FNV1a(); |