From e0d427e855e514c758ffc8f776539abe70ad12d4 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@17151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- rational.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'rational.c') diff --git a/rational.c b/rational.c index d24195ac14..c81b89a4a7 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 v1.2.3