From 48b4d8c528696a03b8a924c084f24bdc263262dc Mon Sep 17 00:00:00 2001 From: mame Date: Tue, 26 Jan 2010 15:21:25 +0000 Subject: * ext/bigdecimal/bigdecimal.c (VpCtoV): do not raise infinity exception for BigDecimal("0E200000000000"). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/bigdecimal/bigdecimal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'ext') diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c index 5a532e14e0..1172b136a4 100644 --- a/ext/bigdecimal/bigdecimal.c +++ b/ext/bigdecimal/bigdecimal.c @@ -4079,9 +4079,11 @@ VpCtoV(Real *a, const char *int_chr, U_LONG ni, const char *frac, U_LONG nf, con int zero = 1; for( ; i < mi && zero; i++) zero = int_chr[i] == '0'; for(i = 0; i < nf && zero; i++) zero = frac[i] == '0'; - if(!zero && signe > 0) VpSetInf(a, sign); + if(!zero && signe > 0) { + VpSetInf(a, sign); + VpException(VP_EXCEPTION_INFINITY,"exponent overflow",0); + } else VpSetZero(a, sign); - VpException(VP_EXCEPTION_INFINITY,"exponent overflow",0); return 1; } -- cgit v1.2.3