From df2d56c03fd60d63fa5c2336186d4d80e08eb65c Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 7 Oct 2002 07:44:18 +0000 Subject: [PATCH] * bignum.c (bigdivrem): bignum zero's len should not be 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ bignum.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf5a0d5d47..7a70a042eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Oct 7 16:43:07 2002 Yukihiro Matsumoto + + * bignum.c (bigdivrem): bignum zero's len should not be 0. + Mon Oct 7 15:36:42 2002 Yukihiro Matsumoto * bignum.c (bigdivmod): wrong condition check for Bignum zero. diff --git a/bignum.c b/bignum.c index 0fa2233ebc..3cf4544cb4 100644 --- a/bignum.c +++ b/bignum.c @@ -1217,10 +1217,10 @@ bigdivrem(x, y, divp, modp) for (i = 0;i < j;i++) zds[i] = zds[i+ny]; RBIGNUM(*divp)->len = i; } - if (modp) { /* just normalize remainder */ + if (modp) { /* normalize remainder */ *modp = rb_big_clone(z); zds = BDIGITS(*modp); - while (ny-- && !zds[ny]); ++ny; + while (--ny && !zds[ny]); ++ny; if (dd) { t2 = 0; i = ny; while(i--) {