diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | range.c | 3 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Fri May 2 17:29:59 2008 Yukihiro Matsumoto <matz@ruby-lang.org> + + * range.c (range_step): call to_int if step is not a numeric + value. [ruby-dev:34575] + Fri May 2 16:10:57 2008 Yukihiro Matsumoto <matz@ruby-lang.org> * range.c (range_step): do not forcefully convert steps into @@ -306,6 +306,9 @@ range_step(int argc, VALUE *argv, VALUE range) } else { rb_scan_args(argc, argv, "01", &step); + if (!rb_obj_is_kind_of(step, rb_cNumeric)) { + step = rb_to_int(step); + } if (rb_funcall(step, '<', 1, INT2FIX(0))) { rb_raise(rb_eArgError, "step can't be negative"); } |