From fe85bcd644d60f7665ed2688b91c28c3def01526 Mon Sep 17 00:00:00 2001 From: knu Date: Sat, 1 Nov 2003 16:16:31 +0000 Subject: * string.c (rb_str_hash): Update the HASH_PERL alternative hash algorithm in sync with Perl 5.8. * st.c (strhash): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- st.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'st.c') diff --git a/st.c b/st.c index 1cc0e2f4d7..753dce9a02 100644 --- a/st.c +++ b/st.c @@ -536,10 +536,14 @@ strhash(string) register int val = 0; while ((c = *string++) != '\0') { - val = val*33 + c; + val += c; + val += (val << 10); + val ^= (val >> 6); } + val += (val << 3); + val ^= (val >> 11); - return val + (val>>5); + return val + (val << 15); #else register int val = 0; -- cgit v1.2.3