summaryrefslogtreecommitdiff
path: root/src/runtime/c/gu/string.c
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-07-02 19:12:53 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-07-02 19:12:53 +0000
commit2948231e0f3dfaab58e68c74d13c36b84c70ff2a (patch)
tree586d51a18e346097d990e2b3fd6b77aa89deea21 /src/runtime/c/gu/string.c
parentc0a0859566dedd0f73b20285ea1d38aa15728c6b (diff)
hash function for abstract syntax trees
Diffstat (limited to 'src/runtime/c/gu/string.c')
-rw-r--r--src/runtime/c/gu/string.c10
1 files changed, 5 insertions, 5 deletions
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