From 2948231e0f3dfaab58e68c74d13c36b84c70ff2a Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Tue, 2 Jul 2013 19:12:53 +0000 Subject: hash function for abstract syntax trees --- src/runtime/c/gu/string.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/runtime/c/gu/string.c') diff --git a/src/runtime/c/gu/string.c b/src/runtime/c/gu/string.c index 7ffd43068..7655b32ab 100644 --- a/src/runtime/c/gu/string.c +++ b/src/runtime/c/gu/string.c @@ -367,15 +367,15 @@ gu_string_is_prefix(GuString s1, GuString s2) return true; } -GuWord -gu_string_hash(GuString s) +GuHash +gu_string_hash(GuHash h, GuString s) { if (s.w_ & 1) { - return s.w_; + return h*101 + s.w_; } size_t len = gu_string_length(s); uint8_t* data = gu_string_long_data(s); - return gu_hash_bytes(0, data, len); + return gu_hash_bytes(h, data, len); } bool @@ -403,7 +403,7 @@ gu_string_hasher_hash(GuHasher* self, const void* p) { (void) self; const GuString* sp = p; - return gu_string_hash(*sp); + return gu_string_hash(0, *sp); } static bool -- cgit v1.2.3