diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | array.c | 1 | ||||
-rw-r--r-- | bignum.c | 2 | ||||
-rw-r--r-- | numeric.c | 6 | ||||
-rw-r--r-- | string.c | 1 | ||||
-rw-r--r-- | struct.c | 1 |
6 files changed, 18 insertions, 5 deletions
@@ -1,3 +1,11 @@ +Fri Aug 24 15:17:40 2001 Yukihiro Matsumoto <matz@ruby-lang.org> + + * array.c (rb_ary_equal): check identiry equality first. + + * string.c (rb_str_equal): ditto. + + * struct.c (rb_struct_equal): ditto. + Fri Aug 24 14:45:26 2001 Usaku Nakamura <usa@ruby-lang.org> * dln.c (dln_strerror): fix a bug that sometimes made null message on @@ -5,6 +13,10 @@ Fri Aug 24 14:45:26 2001 Usaku Nakamura <usa@ruby-lang.org> * win32/win32.c (mystrerror): ditto. +Fri Aug 24 03:15:07 2001 Yukihiro Matsumoto <matz@ruby-lang.org> + + * numeric.c (Init_Numeric): undef Integer::new. + Thu Aug 23 10:10:59 2001 Yukihiro Matsumoto <matz@ruby-lang.org> * eval.c (is_defined): should not dump core for "defined?(())". @@ -1341,6 +1341,7 @@ rb_ary_equal(ary1, ary2) { long i; + if (ary1 == ary2) return Qtrue; if (TYPE(ary2) != T_ARRAY) return Qfalse; if (RARRAY(ary1)->len != RARRAY(ary2)->len) return Qfalse; for (i=0; i<RARRAY(ary1)->len; i++) { @@ -1418,8 +1418,6 @@ Init_Bignum() { rb_cBignum = rb_define_class("Bignum", rb_cInteger); - rb_undef_method(CLASS_OF(rb_cBignum), "new"); - rb_define_method(rb_cBignum, "to_s", rb_big_to_s, 0); rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1); rb_define_method(rb_cBignum, "-@", rb_big_uminus, 0); @@ -1125,7 +1125,7 @@ fix_equal(x, y) VALUE x, y; { if (FIXNUM_P(y)) { - return (FIX2LONG(x) == FIX2LONG(y))?Qtrue:Qfalse; + return (x == y)?Qtrue:Qfalse; } else { return num_equal(x, y); @@ -1556,6 +1556,8 @@ Init_Numeric() rb_define_method(rb_cNumeric, "truncate", num_truncate, 0); rb_cInteger = rb_define_class("Integer", rb_cNumeric); + rb_undef_method(CLASS_OF(rb_cInteger), "new"); + rb_define_method(rb_cInteger, "integer?", int_int_p, 0); rb_define_method(rb_cInteger, "upto", int_upto, 1); rb_define_method(rb_cInteger, "downto", int_downto, 1); @@ -1577,8 +1579,6 @@ Init_Numeric() rb_define_singleton_method(rb_cFixnum, "induced_from", rb_fix_induced_from, 1); rb_define_singleton_method(rb_cInteger, "induced_from", rb_int_induced_from, 1); - rb_undef_method(CLASS_OF(rb_cFixnum), "new"); - rb_define_method(rb_cFixnum, "to_s", fix_to_s, 0); rb_define_method(rb_cFixnum, "type", fix_type, 0); @@ -565,6 +565,7 @@ static VALUE rb_str_equal(str1, str2) VALUE str1, str2; { + if (str1 == str2) return Qtrue; if (TYPE(str2) != T_STRING) return Qfalse; @@ -525,6 +525,7 @@ rb_struct_equal(s, s2) { long i; + if (s == s2) return Qtrue; if (TYPE(s2) != T_STRUCT) return Qfalse; if (CLASS_OF(s) != CLASS_OF(s2)) return Qfalse; if (RSTRUCT(s)->len != RSTRUCT(s2)->len) { |