summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2020-05-15 21:17:24 +0900
committerKOBAYASHI Shuji <[email protected]>2020-05-15 21:17:24 +0900
commitbc929656fb1c675fde9b1652c10f7cd42d2f63fa (patch)
tree7ab02389d8c6c0c58e79246e2d615ae4799b05e5 /src
parent4aba93c969a9cbfcc1ebd122a9e14e1d60dccbde (diff)
downloadmruby-bc929656fb1c675fde9b1652c10f7cd42d2f63fa.tar.gz
mruby-bc929656fb1c675fde9b1652c10f7cd42d2f63fa.zip
Unify `eql?` receiver in `Hash` according to Ruby
### Example ```ruby # example.rb class A def eql?(o) p self.class super end def hash 1 end end class B < A; end h = {A.new => 1} h[B.new] ``` #### Before this patch: ```console $ bin/mruby example.rb A ``` #### After this patch (same as Ruby) ```console $ bin/mruby example.rb B ```
Diffstat (limited to 'src')
-rw-r--r--src/hash.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/hash.c b/src/hash.c
index 8e7f97147..ec79a3def 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -373,7 +373,7 @@ ht_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
deleted++;
continue;
}
- if (ht_hash_equal(mrb, t, k, key)) {
+ if (ht_hash_equal(mrb, t, key, k)) {
seg->e[i].val = val;
return;
}
@@ -454,7 +454,7 @@ ht_get(mrb_state *mrb, htable *t, mrb_value key, mrb_value *vp)
return FALSE;
}
if (mrb_undef_p(k)) continue;
- if (ht_hash_equal(mrb, t, k, key)) {
+ if (ht_hash_equal(mrb, t, key, k)) {
if (vp) *vp = seg->e[i].val;
return TRUE;
}