summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-08-12 07:21:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-08-12 07:21:25 +0000
commit123771da6b9a73aaa6051d4d37105c34ba9b8d72 (patch)
tree9f36b575095d48a4880718c606a864eebc6a509f
parent34da8739c974268aacf52723b5ef23ae715c3510 (diff)
downloadruby-123771da6b9a73aaa6051d4d37105c34ba9b8d72.tar.gz
ruby-123771da6b9a73aaa6051d4d37105c34ba9b8d72.tar.xz
ruby-123771da6b9a73aaa6051d4d37105c34ba9b8d72.zip
* bignum.c (rb_big_cmp): raise for NaN. (ruby-bugs-ja:PR#284).
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--bignum.c11
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index ebab6a63a..493053832 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Aug 12 16:15:37 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * bignum.c (rb_big_cmp): raise for NaN. (ruby-bugs-ja:PR#284).
+
Sun Aug 11 09:34:07 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* eval.c (rb_eval): set line number from all nodes.
diff --git a/bignum.c b/bignum.c
index fbf293de8..26036775e 100644
--- a/bignum.c
+++ b/bignum.c
@@ -77,7 +77,7 @@ get2comp(x, carry) /* get 2's complement */
} while (i < RBIGNUM(x)->len);
if (!carry) return;
if ((ds[RBIGNUM(x)->len-1] & (1<<(BITSPERDIG-1))) == 0) {
- REALLOC_N(RBIGNUM(x)->digits, BDIGIT, RBIGNUM(x)->len++);
+ REALLOC_N(RBIGNUM(x)->digits, BDIGIT, ++RBIGNUM(x)->len);
ds = BDIGITS(x);
ds[RBIGNUM(x)->len-1] = ~0;
}
@@ -826,11 +826,12 @@ rb_big_cmp(x, y)
case T_FLOAT:
{
- double d = rb_big2dbl(x);
+ double d = rb_big2dbl(x);
- if (d == RFLOAT(y)->value) return INT2FIX(0);
- if (d > RFLOAT(y)->value) return INT2FIX(1);
- if (d < RFLOAT(y)->value) return INT2FIX(-1);
+ if (d == RFLOAT(y)->value) return INT2FIX(0);
+ if (d > RFLOAT(y)->value) return INT2FIX(1);
+ if (d < RFLOAT(y)->value) return INT2FIX(-1);
+ rb_raise(rb_eFloatDomainError, "comparing NaN");
}
break;