From f099a94afaa5a8e3871e7de8fa89c97ce016dd54 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 2 May 2008 08:31:04 +0000 Subject: [PATCH] * range.c (range_step): call to_int if step is not a numeric value. [ruby-dev:34575] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ range.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index cb2ce2cd02..c25f72594c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri May 2 17:29:59 2008 Yukihiro Matsumoto + + * 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 * range.c (range_step): do not forcefully convert steps into diff --git a/range.c b/range.c index 5835d80c23..45ba78dcf7 100644 --- a/range.c +++ b/range.c @@ -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"); }