summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 08:35:32 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 08:35:32 +0000
commitc0ab40c785d71c5b2b41c69731b61fe4ba9f8c0f (patch)
treebc8b476e1670d24b014a3d9f024c65b7f73e483d /bignum.c
parent6c70639e7b2e49ff4491219c83333e8749baa56e (diff)
* eval.c (top_include): include in the wrapped load is done for
the wrapper, not for a singleton class for wrapped main. [ruby-dev:23305] * bignum.c (rb_big_eq): use temporary double variable to save the result (internal float register may be bigger than 64 bits, for example, 80 bits on x86). [ruby-dev:23311] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/bignum.c b/bignum.c
index f247d8f1a5..f56d5a6377 100644
--- a/bignum.c
+++ b/bignum.c
@@ -978,10 +978,13 @@ rb_big_eq(x, y)
case T_BIGNUM:
break;
case T_FLOAT:
- if (rb_big2dbl(x) == RFLOAT(y)->value)
- return Qtrue;
- else
- return Qfalse;
+ {
+ double a, b;
+
+ a = RFLOAT(y)->value;
+ b = rb_big2dbl(x);
+ return (a == b)?Qtrue:Qfalse;
+ }
default:
return rb_equal(y, x);
}