diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-24 13:18:02 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-24 13:18:02 +0000 |
commit | 5f93fa308bd970eeab9a3028c44577f0af8c636c (patch) | |
tree | e512e2dd026f5662cc0baf993355387a54c91f72 | |
parent | af4310be97ccebd6c06eec164a1b197a61085032 (diff) |
* hash.c (hash_i): avoid too frequent hash conflict where key and
value are same. a patch from Yusuke ENDOH <mame AT tsg.ne.jp>.
[ruby-dev:31802]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | hash.c | 1 |
2 files changed, 5 insertions, 0 deletions
@@ -2,6 +2,10 @@ Mon Sep 24 22:14:13 2007 Yukihiro Matsumoto <matz@ruby-lang.org> * lib/weakref.rb (WeakRef): remove debug print. [ruby-dev:31799] + * hash.c (hash_i): avoid too frequent hash conflict where key and + value are same. a patch from Yusuke ENDOH <mame AT tsg.ne.jp>. + [ruby-dev:31802] + Mon Sep 24 17:56:21 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/strscan/strscan.c (strscan_initialize, strscan_getch): use the @@ -1464,6 +1464,7 @@ hash_i(VALUE key, VALUE val, int *hval) { if (key == Qundef) return ST_CONTINUE; *hval ^= rb_hash(key); + *hval *= 137; *hval ^= rb_hash(val); return ST_CONTINUE; } |