ruby-changes:4891
From: ko1@a...
Date: Mon, 12 May 2008 13:44:35 +0900 (JST)
Subject: [ruby-changes:4891] akr - Ruby:r16384 (trunk): * bignum.c (bigzero_p): check from MSB to LSB.
akr 2008-05-12 13:44:13 +0900 (Mon, 12 May 2008)
New Revision: 16384
Modified files:
trunk/ChangeLog
trunk/bignum.c
trunk/include/ruby/ruby.h
Log:
* bignum.c (bigzero_p): check from MSB to LSB. [ruby-dev:34649]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/ruby.h?r1=16384&r2=16383&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16384&r2=16383&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bignum.c?r1=16384&r2=16383&diff_format=u
Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h (revision 16383)
+++ include/ruby/ruby.h (revision 16384)
@@ -632,6 +632,7 @@
(long)((RBASIC(b)->flags >> RBIGNUM_EMBED_LEN_SHIFT) & \
(RBIGNUM_EMBED_LEN_MASK >> RBIGNUM_EMBED_LEN_SHIFT)) : \
RBIGNUM(b)->as.heap.len)
+/* LSB:RBIGNUM_DIGITS(b)[0], MSB:RBIGNUM_DIGITS(b)[RBIGNUM_LEN(b)-1] */
#define RBIGNUM_DIGITS(b) \
((RBASIC(b)->flags & RBIGNUM_EMBED_FLAG) ? \
RBIGNUM(b)->as.ary : \
Index: ChangeLog
===================================================================
--- ChangeLog (revision 16383)
+++ ChangeLog (revision 16384)
@@ -1,3 +1,7 @@
+Mon May 12 13:29:26 2008 Tanaka Akira <akr@f...>
+
+ * bignum.c (bigzero_p): check from MSB to LSB. [ruby-dev:34649]
+
Mon May 12 12:32:10 2008 Nobuyoshi Nakada <nobu@r...>
* common.mk (RUBYOPT): affected BASERUBY too. [ruby-talk:301514]
Index: bignum.c
===================================================================
--- bignum.c (revision 16383)
+++ bignum.c (revision 16384)
@@ -44,7 +44,7 @@
bigzero_p(VALUE x)
{
long i;
- for (i = 0; i < RBIGNUM_LEN(x); ++i) {
+ for (i = RBIGNUM_LEN(x) - 1; 0 <= i; i--) {
if (BDIGITS(x)[i]) return 0;
}
return 1;
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/