diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-16 09:25:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-16 09:25:08 +0000 |
commit | 527fa610870bd7823560ba7fda8e72e21fc42d7e (patch) | |
tree | 9279606c602141636fbb4ac6e371f4de789c0141 | |
parent | 135a171ce11dc56d037bfc9c5c50b006042621c4 (diff) | |
download | ruby-527fa610870bd7823560ba7fda8e72e21fc42d7e.tar.gz |
numeric.c: fix segfault
* numeric.c (compare_with_zero): fix variable name, rb_cmperr
requires VALUEs but not an ID.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | numeric.c | 2 | ||||
-rw-r--r-- | test/ruby/test_numeric.rb | 10 |
3 files changed, 16 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Tue Feb 16 18:24:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * numeric.c (compare_with_zero): fix variable name, rb_cmperr + requires VALUEs but not an ID. + Tue Feb 16 17:34:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the @@ -168,7 +168,7 @@ compare_with_zero(VALUE num, ID mid) VALUE zero = INT2FIX(0); VALUE r = rb_check_funcall(num, mid, 1, &zero); if (r == Qundef) { - rb_cmperr(mid, zero); + rb_cmperr(num, zero); } return r; } diff --git a/test/ruby/test_numeric.rb b/test/ruby/test_numeric.rb index 89e11d0ff8..5c55539d91 100644 --- a/test/ruby/test_numeric.rb +++ b/test/ruby/test_numeric.rb @@ -348,4 +348,14 @@ class TestNumeric < Test::Unit::TestCase assert_not_operator(1, :eql?, 1.0) assert_not_operator(1, :eql?, 2) end + + def test_coerced_remainder + assert_separately([], <<-'end;') + x = Class.new do + def coerce(a) [self, a]; end + def %(a) self; end + end.new + assert_raise(ArgumentError) {1.remainder(x)} + end; + end end |