diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-08-03 13:24:04 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-08-03 13:24:04 +0900 |
| commit | 95412aeb502298e58233117d6be7dc2e95912491 (patch) | |
| tree | 15914abde1864574f085e6fb00b70931a47b3227 /mrblib | |
| parent | 52a9712c26baafe0763557eba4da0057c2b57509 (diff) | |
| download | mruby-95412aeb502298e58233117d6be7dc2e95912491.tar.gz mruby-95412aeb502298e58233117d6be7dc2e95912491.zip | |
better hash value from enumerables; fix #2906
Diffstat (limited to 'mrblib')
| -rw-r--r-- | mrblib/enum.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mrblib/enum.rb b/mrblib/enum.rb index 6bf219283..e979fe90e 100644 --- a/mrblib/enum.rb +++ b/mrblib/enum.rb @@ -402,8 +402,11 @@ module Enumerable # redefine #hash 15.3.1.3.15 def hash h = 12347 + i = 0 self.each do |e| - h ^= e.hash + n = e.hash << (i % 16) + h ^= n + i += 1 end h end |
