diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-30 16:12:32 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-30 16:12:32 +0900 |
| commit | a4a48e3da1e65cdf1e0aaad1f5b4a83d4f91e658 (patch) | |
| tree | 6714d0d6b13719a149490db9cd7da14c5a2de32f | |
| parent | 0de8ffb0deee9635383a2008b3a95590775ed893 (diff) | |
| download | mruby-a4a48e3da1e65cdf1e0aaad1f5b4a83d4f91e658.tar.gz mruby-a4a48e3da1e65cdf1e0aaad1f5b4a83d4f91e658.zip | |
specify allocating array size for Hash#values
| -rw-r--r-- | src/hash.c | 2 | ||||
| -rw-r--r-- | test/t/hash.rb | 1 |
2 files changed, 2 insertions, 1 deletions
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++) { diff --git a/test/t/hash.rb b/test/t/hash.rb index af662688a..240f6616b 100644 --- a/test/t/hash.rb +++ b/test/t/hash.rb @@ -222,5 +222,6 @@ end assert('Hash#values', '15.2.13.4.28') do a = { 'abc_key' => 'abc_value' } + p a.values a.values == ['abc_value'] end |
