diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-02 15:32:04 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-02 15:32:04 +0000 |
commit | a3bc33a752be4d05a2ab24610e238c8e5140896b (patch) | |
tree | 863f078dcbac2feabe27064c5a486e0faa5a7d55 | |
parent | e0910767b6e775b2766fba360b3e10d9f7bd8dd6 (diff) | |
download | ruby-a3bc33a752be4d05a2ab24610e238c8e5140896b.tar.gz ruby-a3bc33a752be4d05a2ab24610e238c8e5140896b.tar.xz ruby-a3bc33a752be4d05a2ab24610e238c8e5140896b.zip |
* random.c (rb_random_int): arguments have to be converted to
integer. [ruby-core:24679]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | random.c | 5 | ||||
-rw-r--r-- | test/ruby/test_rand.rb | 1 |
3 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon Aug 3 00:32:00 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * random.c (rb_random_int): arguments have to be converted to + integer. [ruby-core:24679] + Sun Aug 2 21:04:37 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (literal_concat0): tail can be nil. [ruby-dev:38980] @@ -911,9 +911,10 @@ rb_random_int(VALUE obj, VALUE vmax) if (NIL_P(v)) { /* range like object support */ if (!(v = range_values(vmax, &beg))) { - beg = Qundef; - NUM2LONG(vmax); + v = vmax; } + v = rb_to_int(v); + beg = rb_to_int(beg); } v = rand_int(&rnd->mt, v); if (NIL_P(v)) v = INT2FIX(0); diff --git a/test/ruby/test_rand.rb b/test/ruby/test_rand.rb index b932128e2..39444af8a 100644 --- a/test/ruby/test_rand.rb +++ b/test/ruby/test_rand.rb @@ -344,6 +344,7 @@ END 1267650600228229401496703205383).each do |w| assert_equal(w.to_i, r.int(2**100+5..2**100+9)) end + assert_equal(3, r.int(3.1..4), '[ruby-core:24679]') end def test_random_float |