diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-29 09:43:33 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-03-29 09:43:33 +0900 |
| commit | 1f6bf0e14f57afca0c5254cc1a0893d11b3303e2 (patch) | |
| tree | c2159afb2d99863dc84b61d4c6112b15a9179475 /src | |
| parent | 506c05f01df8ee84f0da1840d351219b29342d17 (diff) | |
| parent | a6e25f73a05bb0292c0c9f10b77c5cdaf260e4d0 (diff) | |
| download | mruby-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.c | 3 |
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; } } } |
