summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-28 12:24:31 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-28 12:24:31 +0900
commitb275be253d8969128f2828a76cd9eaf2cb1c0eef (patch)
treeeeacedbd5fe0d823435cde0a99ceca04c45e6a05 /src
parent4bca3e5470820fb4498191619a2c6d324fe58def (diff)
downloadmruby-b275be253d8969128f2828a76cd9eaf2cb1c0eef.tar.gz
mruby-b275be253d8969128f2828a76cd9eaf2cb1c0eef.zip
Hash#keys stop duping keys
Diffstat (limited to 'src')
-rw-r--r--src/hash.c4
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);
}
}