summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-03-29 09:43:33 +0900
committerGitHub <[email protected]>2017-03-29 09:43:33 +0900
commit1f6bf0e14f57afca0c5254cc1a0893d11b3303e2 (patch)
treec2159afb2d99863dc84b61d4c6112b15a9179475 /src
parent506c05f01df8ee84f0da1840d351219b29342d17 (diff)
parenta6e25f73a05bb0292c0c9f10b77c5cdaf260e4d0 (diff)
downloadmruby-1f6bf0e14f57afca0c5254cc1a0893d11b3303e2.tar.gz
mruby-1f6bf0e14f57afca0c5254cc1a0893d11b3303e2.zip
Merge pull request #3563 from clayton-shopify/dup-renumber-keys
Renumber hash keys during dup since there may be duplicates.
Diffstat (limited to 'src')
-rw-r--r--src/hash.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/hash.c b/src/hash.c
index d15faa206..3a7aea245 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -246,7 +246,8 @@ mrb_hash_dup(mrb_state *mrb, mrb_value hash)
int ai = mrb_gc_arena_save(mrb);
ret_k = kh_put(ht, mrb, ret_h, KEY(kh_key(h, k)));
mrb_gc_arena_restore(mrb, ai);
- kh_val(ret_h, ret_k) = kh_val(h, k);
+ kh_val(ret_h, ret_k).v = kh_val(h, k).v;
+ kh_val(ret_h, ret_k).n = kh_size(ret_h)-1;
}
}
}