aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--hash.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f7812e5329..6c39e67eab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Feb 15 14:58:07 2009 Tanaka Akira <akr@fsij.org>
+
+ * hash.c (hash_i): use Murmurhash.
+
Sun Feb 15 11:45:29 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* variable.c (rb_define_hooked_variable): suppress false assertion
diff --git a/hash.c b/hash.c
index abce6f7eca..c916ff3ab7 100644
--- a/hash.c
+++ b/hash.c
@@ -1523,8 +1523,7 @@ static int
hash_i(VALUE key, VALUE val, int *hval)
{
if (key == Qundef) return ST_CONTINUE;
- *hval ^= rb_hash(key);
- *hval ^= rb_hash(val);
+ *hval ^= rb_hash_end(rb_hash_uint(rb_hash_start(rb_hash(key)), rb_hash(val)));
return ST_CONTINUE;
}