summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-08 03:26:28 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-08 03:26:28 +0000
commitb5baceda18fd6e93f8db29f79055a004f6419e1d (patch)
treeb2cef66cd724d5246640048a285e3884cf9fb8e1
parent06eece87c6e8b969a73aa80ac659f09eb9dcbbcb (diff)
range.c: force hash values fixable
* range.c (method_hash): force hash values fixable on LLP64 environment. [ruby-core:92191] [Bug #15756] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--proc.c2
-rw-r--r--test/ruby/test_method.rb1
2 files changed, 2 insertions, 1 deletions
diff --git a/proc.c b/proc.c
index e63b8469ac7..558304fb7f4 100644
--- a/proc.c
+++ b/proc.c
@@ -1557,7 +1557,7 @@ method_hash(VALUE method)
hash = rb_hash_method_entry(hash, m->me);
hash = rb_hash_end(hash);
- return INT2FIX(hash);
+ return ST2FIX(hash);
}
/*
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb
index f313279f624..beffaa8ce03 100644
--- a/test/ruby/test_method.rb
+++ b/test/ruby/test_method.rb
@@ -197,6 +197,7 @@ class TestMethod < Test::Unit::TestCase
def o.foo; end
assert_kind_of(Integer, o.method(:foo).hash)
assert_equal(Array.instance_method(:map).hash, Array.instance_method(:collect).hash)
+ assert_kind_of(String, o.method(:foo).hash.to_s)
end
def test_owner