mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Hash#delete should return the deleted value; fix #4133
This commit is contained in:
+1
-1
@@ -460,7 +460,7 @@ sg_del(mrb_state *mrb, seglist *t, mrb_value key, mrb_value *vp)
|
||||
}
|
||||
key2 = seg->e[i].key;
|
||||
if (!mrb_undef_p(key2) && sg_hash_equal(mrb, t, key, key2)) {
|
||||
if (vp) *vp = key2;
|
||||
if (vp) *vp = seg->e[i].val;
|
||||
seg->e[i].key = mrb_undef_value();
|
||||
t->size--;
|
||||
return TRUE;
|
||||
|
||||
+3
-3
@@ -82,12 +82,12 @@ assert('Hash#default_proc', '15.2.13.4.7') do
|
||||
end
|
||||
|
||||
assert('Hash#delete', '15.2.13.4.8') do
|
||||
a = { 'abc' => 'abc' }
|
||||
b = { 'abc' => 'abc' }
|
||||
a = { 'abc' => 'ABC' }
|
||||
b = { 'abc' => 'ABC' }
|
||||
b_tmp_1 = false
|
||||
b_tmp_2 = false
|
||||
|
||||
a.delete('abc')
|
||||
assert_equal 'ABC', a.delete('abc')
|
||||
b.delete('abc') do |k|
|
||||
b_tmp_1 = true
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user