From b8d9ad1f6636f46a832b0f949ce7525ae08f53bd Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 6 Aug 2022 14:10:19 +0200 Subject: basic method calls & many bugfix --- bootstrap/util.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'bootstrap/util.c') diff --git a/bootstrap/util.c b/bootstrap/util.c index c9be845..bd6f951 100644 --- a/bootstrap/util.c +++ b/bootstrap/util.c @@ -1,18 +1,15 @@ #include "all.h" -// Bob Jenkins's one_at_a_time hash u32 -jkhash(u32 h, const u8 *data, size_t length) { +fnv1a(u32 h, const void *p, size_t length) { + const u8 *data = p; size_t i = 0; + u64 H = h; while (i != length) { - h += data[i++]; - h += h << 10; - h ^= h >> 6; + H ^= data[i++]; + H *= 0x100000001b3; } - h += h << 3; - h ^= h >> 11; - h += h << 15; - return h; + return H; } static const char *filepaths[100]; @@ -117,7 +114,7 @@ eprifileline(struct span span) { --j; n = fprintf(stderr, "%4d| ", span.line); - for (long k = i; k < j; ++k) + for (long k = i; k <= j; ++k) epri("%c", src[k]); epri("\n"); while (n--) -- cgit v1.2.3