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

ruby-changes:11307

From: nobu <ko1@a...>
Date: Fri, 13 Mar 2009 09:30:25 +0900 (JST)
Subject: [ruby-changes:11307] Ruby:r22920 (trunk): * bignum.c (bigfixize): zero length Bignum is 0.

nobu	2009-03-13 09:30:15 +0900 (Fri, 13 Mar 2009)

  New Revision: 22920

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22920

  Log:
    * bignum.c (bigfixize): zero length Bignum is 0.

  Modified files:
    trunk/ChangeLog
    trunk/bignum.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22919)
+++ ChangeLog	(revision 22920)
@@ -1,3 +1,7 @@
+Fri Mar 13 09:30:12 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* bignum.c (bigfixize): zero length Bignum is 0.
+
 Fri Mar 13 08:06:48 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* util.c (rv_strdup): macro to duplicate nul-terminated string.
Index: bignum.c
===================================================================
--- bignum.c	(revision 22919)
+++ bignum.c	(revision 22920)
@@ -191,7 +191,8 @@
     long len = RBIGNUM_LEN(x);
     BDIGIT *ds = BDIGITS(x);
 
-    if (len > 0 && len*SIZEOF_BDIGITS <= sizeof(long)) {
+    if (len == 0) return INT2FIX(0);
+    if (len*SIZEOF_BDIGITS <= sizeof(long)) {
 	long num = 0;
 #if 2*SIZEOF_BDIGITS > SIZEOF_LONG
 	num = (long)ds[0];

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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