diff --git a/ChangeLog b/ChangeLog index 0997df6c77..5492202994 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Jul 16 15:37:56 2012 Tanaka Akira + + * bignum.c (rb_big_eq): use rb_big_float_cmp. + Mon Jul 16 15:00:45 2012 Tanaka Akira * internal.h (rb_big_float_cmp): declared. diff --git a/bignum.c b/bignum.c index 839a866ae9..592c8f88ce 100644 --- a/bignum.c +++ b/bignum.c @@ -1616,14 +1616,7 @@ rb_big_eq(VALUE x, VALUE y) case T_BIGNUM: break; case T_FLOAT: - { - volatile double a, b; - - a = RFLOAT_VALUE(y); - if (isnan(a) || isinf(a)) return Qfalse; - b = rb_big2dbl(x); - return (a == b)?Qtrue:Qfalse; - } + return rb_big_float_cmp(x, y) == INT2FIX(0) ? Qtrue : Qfalse; default: return rb_equal(y, x); }