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

ruby-changes:15723

From: naruse <ko1@a...>
Date: Fri, 7 May 2010 04:28:51 +0900 (JST)
Subject: [ruby-changes:15723] Ruby:r27647 (trunk): * ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.

naruse	2010-05-07 04:28:12 +0900 (Fri, 07 May 2010)

  New Revision: 27647

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

  Log:
    * ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.

  Modified files:
    trunk/ChangeLog
    trunk/ext/bigdecimal/bigdecimal.c
    trunk/test/bigdecimal/test_bigdecimal.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27646)
+++ ChangeLog	(revision 27647)
@@ -1,3 +1,7 @@
+Fri May  7 03:40:58 2010  NARUSE, Yui  <naruse@r...>
+
+	* ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.
+
 Thu May  6 22:19:38 2010  NAKAMURA Usaku  <usa@r...>
 
 	* cont.c: define FIBER_USE_NATIVE only when _WIN32_WINNT >= 0x0400
Index: ext/bigdecimal/bigdecimal.c
===================================================================
--- ext/bigdecimal/bigdecimal.c	(revision 27646)
+++ ext/bigdecimal/bigdecimal.c	(revision 27647)
@@ -4033,9 +4033,9 @@
         while(i < me) {
             es = e*((S_INT)BASE_FIG);
             e = e * 10 + exp_chr[i] - '0';
-            if(es>e*((S_INT)BASE_FIG)) {
+            if(es > (S_INT)(e*BASE_FIG)) {
 		exponent_overflow = 1;
-		e = es;
+		e = es; /* keep sign */
 		break;
             }
             ++i;
Index: test/bigdecimal/test_bigdecimal.rb
===================================================================
--- test/bigdecimal/test_bigdecimal.rb	(revision 27646)
+++ test/bigdecimal/test_bigdecimal.rb	(revision 27647)
@@ -25,6 +25,7 @@
     assert_equal( 1, BigDecimal.new("Infinity").infinite?)
     assert_equal(-1, BigDecimal.new("-Infinity").infinite?)
     assert_equal(true, BigDecimal.new("NaN").nan?)
+    assert_equal( 1, BigDecimal.new("1E11111111111").infinite?)
   end
 
   def _test_mode(type)

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

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