diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 05:22:17 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 05:22:17 +0000 |
commit | 494f6fcfcf66c8d880318d44edc3245d46f8be61 (patch) | |
tree | b49720e3b3adf4e78d35750bf7dc166496b4d3c4 /range.c | |
parent | f34a75657d74c046eba3befe06700e0334023c7a (diff) | |
download | ruby-494f6fcfcf66c8d880318d44edc3245d46f8be61.tar.gz |
* range.c (range_step): step may be bignum.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r-- | range.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -310,8 +310,11 @@ range_step(int argc, VALUE *argv, VALUE range) rb_scan_args(argc, argv, "01", &step); tmp = rb_check_to_integer(step, "to_int"); if (!NIL_P(tmp)) { + if (FIXNUM_P(tmp)) + unit = FIX2LONG(tmp); + else + unit = rb_cmpint(tmp, step, INT2FIX(0)); step = tmp; - unit = NUM2LONG(step); } else { tmp = rb_funcall(rb_funcall(b, '+', 1, step), '-', 1, b); |