diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-06-08 14:20:58 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-06-08 14:20:58 +0000 |
commit | 46e8ae110469cc8da8d1aad01dec7cd0a83eaae1 (patch) | |
tree | b226bf0b6becd50f95c027133059e7bf07376bdb /hash.c | |
parent | 1b6b6ef2d645e99b66e775c9a5ee97e201e141a1 (diff) |
* gc.c (Init_stack): avoid __builtin_frame_address(2) to retrieve
stack bottom line.
* st.c (numhash): should shuffle bits by dividing by prime number.
* eval.c (rb_eval): multiple assignment behavior fixed, which
results "*a = nil" makes "a == []" now.
* eval.c (rb_f_require): should set SCOPE_PUBLIC before calling
dln_load().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -94,8 +94,11 @@ rb_any_hash(a) default: DEFER_INTS; hval = rb_funcall(a, hash, 0); - if (!FIXNUM_P(hval)) { - hval = rb_funcall(hval, '%', 1, INT2FIX(65439)); + if (FIXNUM_P(hval)) { + hval %= 536870917; + } + else { + hval = rb_funcall(hval, '%', 1, INT2FIX(536870917)); } ENABLE_INTS; return (int)FIX2LONG(hval); |