summaryrefslogtreecommitdiffhomepage
path: root/src/hash.c
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2012-11-01 16:12:57 +0800
committerDaniel Bovensiepen <[email protected]>2012-11-01 16:12:57 +0800
commitcdb72a05a294eb8521dd40c011160228496312cb (patch)
tree283586ad23f2dc6dfd1fd1aaa354f18c23d8c0d6 /src/hash.c
parent88dfaf19aa0808f78d13133d61ea433d043923f9 (diff)
parent57910ca5353e1feba1fb069a876b84a52f33d39f (diff)
downloadmruby-cdb72a05a294eb8521dd40c011160228496312cb.tar.gz
mruby-cdb72a05a294eb8521dd40c011160228496312cb.zip
Merge remote-tracking branch 'upstream/master' into mrbgems
Diffstat (limited to 'src/hash.c')
-rw-r--r--src/hash.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/hash.c b/src/hash.c
index 92dfff186..51f85f4e8 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -970,9 +970,10 @@ 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_capa(mrb, kh_size(h));
+ mrb_value ary;
- if (!h) return ary;
+ if (!h) return mrb_ary_new(mrb);
+ ary = mrb_ary_new_capa(mrb, kh_size(h));
for (k = kh_begin(h); k != kh_end(h); k++) {
if (kh_exist(h, k)) {
mrb_value v = kh_key(h,k);
@@ -1000,9 +1001,10 @@ 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_capa(mrb, kh_size(h));
+ mrb_value ary;
- if (!h) return ary;
+ if (!h) return mrb_ary_new(mrb);
+ ary = mrb_ary_new_capa(mrb, kh_size(h));
for (k = kh_begin(h); k != kh_end(h); k++) {
if (kh_exist(h, k)){
mrb_value v = kh_value(h,k);