From 14c1f452b121a469ee2a0faccb15729ca0c53283 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 7 Dec 2016 04:25:50 +0000 Subject: hash.c: hash should be long * hash.c (any_hash): should return `long', because ruby assumes the hash value of the object id of an object is `long'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- hash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hash.c b/hash.c index afbc5220fb..785e56ffcf 100644 --- a/hash.c +++ b/hash.c @@ -162,7 +162,7 @@ rb_dbl_long_hash(double d) #endif } -static inline st_index_t +static inline long any_hash(VALUE a, st_index_t (*other_func)(VALUE)) { VALUE hval; @@ -199,7 +199,7 @@ any_hash(VALUE a, st_index_t (*other_func)(VALUE)) } out: hnum <<= 1; - return (st_index_t)RSHIFT(hnum, 1); + return (long)RSHIFT(hnum, 1); } static st_index_t @@ -262,7 +262,7 @@ objid_hash(VALUE obj) VALUE rb_obj_hash(VALUE obj) { - st_index_t hnum = any_hash(obj, objid_hash); + long hnum = any_hash(obj, objid_hash); return ST2FIX(hnum); } -- cgit v1.2.3