From a4a48e3da1e65cdf1e0aaad1f5b4a83d4f91e658 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Wed, 30 May 2012 16:12:32 +0900 Subject: specify allocating array size for Hash#values --- src/hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/hash.c') diff --git a/src/hash.c b/src/hash.c index 19d0507e3..777d5fc1a 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1037,7 +1037,7 @@ mrb_hash_values(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++) { -- cgit v1.2.3 From 7cf607bb75556f6f1cd32de557466efeb79e0cb1 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Wed, 30 May 2012 16:25:22 +0900 Subject: stop duping values from Hash#values --- src/hash.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/hash.c') diff --git a/src/hash.c b/src/hash.c index 777d5fc1a..28e718c0d 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1043,8 +1043,6 @@ mrb_hash_values(mrb_state *mrb, mrb_value hash) for (k = kh_begin(h); k != kh_end(h); k++) { if (kh_exist(h, k)){ mrb_value v = kh_value(h,k); - if ( !mrb_special_const_p(v) ) - v = mrb_obj_dup(mrb, v); mrb_ary_push(mrb, ary, v); } } -- cgit v1.2.3