mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
This commit is contained in:
parent
92160dc6d0
commit
fe85bcd644
3 changed files with 19 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
Sun Nov 2 01:02:04 2003 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* string.c (rb_str_hash): Update the HASH_PERL alternative hash
|
||||
algorithm in sync with Perl 5.8.
|
||||
|
||||
* st.c (strhash): Ditto.
|
||||
|
||||
Sat Nov 1 18:21:09 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
|
||||
|
||||
* ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method
|
||||
|
|
8
st.c
8
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;
|
||||
|
||||
|
|
8
string.c
8
string.c
|
@ -744,9 +744,13 @@ rb_str_hash(str)
|
|||
}
|
||||
#elif HASH_PERL
|
||||
while (len--) {
|
||||
key = key*33 + *p++;
|
||||
key += *p++;
|
||||
key += (key << 10);
|
||||
key ^= (key >> 6);
|
||||
}
|
||||
key = key + (key>>5);
|
||||
key += (key << 3);
|
||||
key ^= (key >> 11);
|
||||
key += (key << 15);
|
||||
#else
|
||||
while (len--) {
|
||||
key = key*65599 + *p;
|
||||
|
|
Loading…
Add table
Reference in a new issue