diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-28 12:24:31 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-28 12:24:31 +0900 |
| commit | b275be253d8969128f2828a76cd9eaf2cb1c0eef (patch) | |
| tree | eeacedbd5fe0d823435cde0a99ceca04c45e6a05 /src/hash.c | |
| parent | 4bca3e5470820fb4498191619a2c6d324fe58def (diff) | |
| download | mruby-b275be253d8969128f2828a76cd9eaf2cb1c0eef.tar.gz mruby-b275be253d8969128f2828a76cd9eaf2cb1c0eef.zip | |
Hash#keys stop duping keys
Diffstat (limited to 'src/hash.c')
| -rw-r--r-- | src/hash.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/hash.c b/src/hash.c index 94be511c8..19d0507e3 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1007,14 +1007,12 @@ mrb_hash_keys(mrb_state *mrb, mrb_value hash) { khash_t(ht) *h = RHASH_TBL(hash); khiter_t k; - mrb_value ary = mrb_ary_new(mrb); + mrb_value ary = mrb_ary_new_capa(mrb, kh_size(h)); if (!h) return ary; for (k = kh_begin(h); k != kh_end(h); k++) { if (kh_exist(h, k)) { mrb_value v = kh_key(h,k); - if ( !mrb_special_const_p(v) ) - v = mrb_obj_dup(mrb, v); mrb_ary_push(mrb, ary, v); } } |
