summaryrefslogtreecommitdiff
path: root/vm_args.c
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-08-17 22:47:43 -0700
committerJeremy Evans <code@jeremyevans.net>2019-08-30 12:39:31 -0700
commit16cd0de6ec8464129041c52174f5608e32512ca1 (patch)
tree1105dbfcf45817a861ce03aeb4f9ffb25392d0d4 /vm_args.c
parent5c507db467f20a6981ce6b282a607d4d975bcb07 (diff)
When splitting a keyword hash, dup it first to not mutate it
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2395
Diffstat (limited to 'vm_args.c')
-rw-r--r--vm_args.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/vm_args.c b/vm_args.c
index a91db40cf9..69be10a2b6 100644
--- a/vm_args.c
+++ b/vm_args.c
@@ -241,6 +241,7 @@ keyword_hash_p(VALUE *kw_hash_ptr, VALUE *rest_hash_ptr, int check_only_symbol)
*kw_hash_ptr = Qnil;
return FALSE;
case KW_HASH_HAS_BOTH_KEYS:
+ *rest_hash_ptr = rb_hash_dup(*rest_hash_ptr);
keyword_hash_split(kw_hash_ptr, rest_hash_ptr);
return TRUE;
}