summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-01 22:51:23 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-01 22:51:23 +0000
commit63d77c2a1b9b7f459f616bb9ac1fb5ca1a330b9d (patch)
treecf5c004f9f604229b4d12e1d3902b242fd5d63d7 /string.c
parent7a4401903177bd0e81e7e62c09cc6bc06f6a399d (diff)
string.c: negative hash
* string.c (rb_str_hash_m): hash values may be negative. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/string.c b/string.c
index 1c27c89e8b..57b4e9ac15 100644
--- a/string.c
+++ b/string.c
@@ -2964,9 +2964,9 @@ rb_str_hash_m(VALUE str)
{
st_index_t hval = rb_str_hash(str);
#if SIZEOF_LONG == SIZEOF_VOIDP
- return ULONG2NUM(hval);
+ return LONG2FIX((long)hval);
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
- return ULL2NUM(hval);
+ return LL2NUM((LONG_LONG)hval);
#else
# error unsupported platform
#endif