diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-08-12 07:21:25 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-08-12 07:21:25 +0000 |
| commit | 123771da6b9a73aaa6051d4d37105c34ba9b8d72 (patch) | |
| tree | 9f36b575095d48a4880718c606a864eebc6a509f | |
| parent | 34da8739c974268aacf52723b5ef23ae715c3510 (diff) | |
| download | ruby-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-- | ChangeLog | 4 | ||||
| -rw-r--r-- | bignum.c | 11 |
2 files changed, 10 insertions, 5 deletions
@@ -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. @@ -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; |
