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/