[ruby-dev:3488] Re: [BUG] Array#hash

From: matz@... (Yukihiro Matsumoto)
Date: 1998-08-26 05:47:15 UTC
List: ruby-dev #3488
まつもと ゆきひろです

In message "[ruby-dev:3485] Re: [BUG] Array#hash"
    on 98/08/26, WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

|わたなべです.
|
|Keiju ISHITSUKA <keiju@Rational.Com> writes:
|
|:配列のハッシュ関数にバグがあるみたいです.
|
|とは言えどちらも irb 上の話ですよね.

いやあ,hash値がbignumになることがあるんですが,その時のこと
を忘れて全部Fixnumとして扱ってました.ですから,irbに限りま
せん.んで,パッチです.

--- object.c	1998/07/13 04:37:49	1.1.1.2.2.32
+++ object.c	1998/08/26 05:40:15
@@ -71,2 +71,9 @@
 static VALUE
+obj_hash(obj)
+    VALUE obj;
+{
+    return (long)obj|FIXNUM_FLAG;
+}
+
+static VALUE
 obj_id(obj)
@@ -74,3 +81,3 @@
 {
-    return INT2NUM((int)obj);
+    return INT2NUM((long)obj);
 }
@@ -965,3 +972,3 @@
 
-    rb_define_method(mKernel, "hash", obj_id, 0);
+    rb_define_method(mKernel, "hash", obj_hash, 0);
     rb_define_method(mKernel, "id", obj_id, 0);

In This Thread