From e5ed1780afa9a5f29da7c63ca2b7d9c66f6936aa Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 18 Jan 2000 06:09:05 +0000 Subject: 2000-01-18 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index b04fa83780..8752c2deef 100644 --- a/array.c +++ b/array.c @@ -1301,11 +1301,12 @@ rb_ary_hash(ary) VALUE ary; { long i; - int h; + int n, h; h = RARRAY(ary)->len; for (i=0; ilen; i++) { - int n = rb_hash(RARRAY(ary)->ptr[i]); + h = (h<<1) | (h<0 ? 1 : 0); + n = rb_hash(RARRAY(ary)->ptr[i]); h ^= NUM2LONG(n); } return INT2FIX(h); -- cgit v1.2.3