FNV-1a 64-bit over a byte slice — for re-keying oversized local_names. */
| 146 | |
| 147 | /* FNV-1a 64-bit over a byte slice — for re-keying oversized local_names. */ |
| 148 | static uint64_t fnv1a64(const char *s, size_t len) { |
| 149 | uint64_t h = 14695981039346656037ULL; |
| 150 | for (size_t i = 0; i < len; i++) { |
| 151 | h ^= (uint8_t)s[i]; |
| 152 | h *= 1099511628211ULL; |
| 153 | } |
| 154 | return h; |
| 155 | } |
| 156 | |
| 157 | /* IMPORTS edges carry exactly one imported symbol's local_name (#768): two |
| 158 | * named imports from the same specifier resolve to the same (source, |