[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]