diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-29 18:39:02 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-29 18:39:02 +0000 |
commit | 34f182f7b28b4b4f8c69d3563cd77737867814c1 (patch) | |
tree | 8194b6c002081a700120d0e37e7aebcee34d2c04 | |
parent | 0a3c78facece3e83d0e3b4f2d09d3e0730ac1905 (diff) |
* numeric.c (fix_mul): the width of fixnum is same as long's on all
platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | numeric.c | 8 |
2 files changed, 9 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Fri Apr 30 03:38:14 2010 NAKAMURA Usaku <usa@ruby-lang.org> + + * numeric.c (fix_mul): the width of fixnum is same as long's on all + platforms. + Fri Apr 30 03:17:20 2010 Marc-Andre Lafortune <ruby-core@marc-andre.ca> * lib/matrix.rb: Improve algorithm for Matrix#determinant and @@ -2233,18 +2233,18 @@ fix_mul(VALUE x, VALUE y) /* avoids an optimization bug of HP aC++/ANSI C B3910B A.06.05 [Jul 25 2005] */ volatile #endif - SIGNED_VALUE a, b; -#if SIZEOF_VALUE * 2 <= SIZEOF_LONG_LONG + long a, b; +#if SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG LONG_LONG d; #else - SIGNED_VALUE c; + long c; VALUE r; #endif a = FIX2LONG(x); b = FIX2LONG(y); -#if SIZEOF_VALUE * 2 <= SIZEOF_LONG_LONG +#if SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG d = (LONG_LONG)a * b; if (FIXABLE(d)) return LONG2FIX(d); return rb_ll2inum(d); |