From 7de91a21ba0802ad1c9f702c1cea052ae722d9ad Mon Sep 17 00:00:00 2001 From: tadf Date: Fri, 13 Jun 2008 12:59:22 +0000 Subject: * rational.c (nurat_equal_p): Rational(0,x) and 0 are equivalent, anyway. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ rational.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1c041a0ca..44ae5b4d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 13 21:55:48 2008 Tadayoshi Funaba + + * rational.c (nurat_equal_p): Rational(0,x) and 0 are equivalent, + anyway. + Fri Jun 13 21:26:39 2008 Tadayoshi Funaba * complex.c (string_to_c, nucomp_s_convert): preserve the current diff --git a/rational.c b/rational.c index d24195ac1..c81b89a4a 100644 --- a/rational.c +++ b/rational.c @@ -865,6 +865,9 @@ nurat_equal_p(VALUE self, VALUE other) { get_dat1(self); + if (f_zero_p(dat->num) && f_zero_p(other)) + return Qtrue; + if (!FIXNUM_P(dat->den)) return Qfalse; if (FIX2LONG(dat->den) != 1) @@ -879,6 +882,9 @@ nurat_equal_p(VALUE self, VALUE other) { get_dat2(self, other); + if (f_zero_p(adat->num) && f_zero_p(bdat->num)) + return Qtrue; + return f_boolcast(f_equal_p(adat->num, bdat->num) && f_equal_p(adat->den, bdat->den)); } -- cgit