aboutsummaryrefslogtreecommitdiffstats
path: root/hash.c
diff options
context:
space:
mode:
authorMarc-Andre Lafortune <github@marc-andre.ca>2020-12-17 14:43:11 -0500
committerMarc-André Lafortune <github@marc-andre.ca>2020-12-19 03:59:51 -0500
commit0d3dc2ec807c313d0952d15ac4f30bc8586bba2f (patch)
tree622a4359e28f7fe1021dac07708749a90856f209 /hash.c
parent5611066e03fe73bdbb08cc46f79530c69975cf17 (diff)
downloadruby-0d3dc2ec807c313d0952d15ac4f30bc8586bba2f.tar.gz
Make `Hash#except` always return a Hash
[Feature #15822]
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hash.c b/hash.c
index 2f53c24647..9b4c315a09 100644
--- a/hash.c
+++ b/hash.c
@@ -2643,7 +2643,8 @@ rb_hash_except(int argc, VALUE *argv, VALUE hash)
int i;
VALUE key, result;
- result = rb_obj_dup(hash);
+ result = hash_alloc(rb_cHash);
+ hash_copy(result, hash);
for (i = 0; i < argc; i++) {
key = argv[i];