summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-21 15:27:09 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-21 15:27:09 +0000
commitbb9a770cf34c9a6918fbc1ca6830c93ef3aa27a0 (patch)
treebd867c1f97db4bb0094b16a409140c0e4bf144c1
parent49e950c819b7b7415d59d2c568542e4cbf47f557 (diff)
merge revision(s) 62107: [Backport #14420]
force fixable * complex.c (nucomp_hash): force hash values fixable. [ruby-core:85224] [Bug #14420] * rational.c (nurat_hash): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@62877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--complex.c2
-rw-r--r--rational.c2
-rw-r--r--test/ruby/test_complex.rb8
-rw-r--r--test/ruby/test_rational.rb4
-rw-r--r--version.h2
5 files changed, 12 insertions, 6 deletions
diff --git a/complex.c b/complex.c
index 5aa76ad230..81fdb4fa4b 100644
--- a/complex.c
+++ b/complex.c
@@ -1233,7 +1233,7 @@ nucomp_hash(VALUE self)
n = rb_hash(dat->imag);
h[1] = NUM2LONG(n);
v = rb_memhash(h, sizeof(h));
- return LONG2FIX(v);
+ return ST2FIX(v);
}
/* :nodoc: */
diff --git a/rational.c b/rational.c
index c495f73654..cd50b63604 100644
--- a/rational.c
+++ b/rational.c
@@ -1710,7 +1710,7 @@ nurat_hash(VALUE self)
n = rb_hash(dat->den);
h[1] = NUM2LONG(n);
v = rb_memhash(h, sizeof(h));
- return LONG2FIX(v);
+ return ST2FIX(v);
}
static VALUE
diff --git a/test/ruby/test_complex.rb b/test/ruby/test_complex.rb
index 8e5f637b79..4ebc69e9b1 100644
--- a/test/ruby/test_complex.rb
+++ b/test/ruby/test_complex.rb
@@ -48,8 +48,12 @@ class Complex_Test < Test::Unit::TestCase
end
def test_hash
- assert_kind_of(Integer, Complex(1,2).hash)
- assert_kind_of(Integer, Complex(1.0,2.0).hash)
+ h = Complex(1,2).hash
+ assert_kind_of(Integer, h)
+ assert_nothing_raised {h.to_s}
+ h = Complex(1.0,2.0).hash
+ assert_kind_of(Integer, h)
+ assert_nothing_raised {h.to_s}
h = {}
h[Complex(0)] = 0
diff --git a/test/ruby/test_rational.rb b/test/ruby/test_rational.rb
index 20989a572e..c5469bf7b1 100644
--- a/test/ruby/test_rational.rb
+++ b/test/ruby/test_rational.rb
@@ -42,7 +42,9 @@ class Rational_Test < Test::Unit::TestCase
end
def test_hash
- assert_kind_of(Integer, Rational(1,2).hash)
+ h = Rational(1,2).hash
+ assert_kind_of(Integer, h)
+ assert_nothing_raised {h.to_s}
h = {}
h[Rational(0)] = 0
diff --git a/version.h b/version.h
index 6ab0643884..46c1b8e13f 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.4.4"
#define RUBY_RELEASE_DATE "2018-03-22"
-#define RUBY_PATCHLEVEL 279
+#define RUBY_PATCHLEVEL 280
#define RUBY_RELEASE_YEAR 2018
#define RUBY_RELEASE_MONTH 3