diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-12-06 09:04:03 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-12-06 09:04:03 +0000 |
commit | 0ca799d43c24ec0ce26d59e4fabcc5a092eec9c7 (patch) | |
tree | cd2c1ec91ad57702c5b466ae2012cf957431b3d3 /numeric.c | |
parent | cb4d9ccf0322f5cec3e6fc16abc2925d50f14595 (diff) |
19991206
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'numeric.c')
-rw-r--r-- | numeric.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -1169,12 +1169,10 @@ fix_rshift(x, y) long i, val; i = NUM2LONG(y); - if (i < sizeof(long) * 8) { - val = RSHIFT(FIX2LONG(x), i); - return INT2FIX(val); - } - - return INT2FIX(0); + if (i < 0) + return fix_lshift(x, INT2FIX(-i)); + val = RSHIFT(FIX2LONG(x), i); + return INT2FIX(val); } static VALUE |