зеркало из https://github.com/github/ruby.git
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
This commit is contained in:
Родитель
9db0b2d7ee
Коммит
f2b6e9f05f
6
hash.c
6
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);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче