summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-11-19 03:46:58 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-11-19 03:46:58 +0900
commit9b2454c94dd12ead5e3d3c724da61b05c2e54fd8 (patch)
tree5f8c8dd3c1292c8f4775a96712a45dc51b86ae8b /src
parent7405821f5afb0b339fccad4f33c42ed845794673 (diff)
downloadmruby-9b2454c94dd12ead5e3d3c724da61b05c2e54fd8.tar.gz
mruby-9b2454c94dd12ead5e3d3c724da61b05c2e54fd8.zip
Leave `hash->ht` to be `NULL` if initial capacity is zero.
Diffstat (limited to 'src')
-rw-r--r--src/hash.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/hash.c b/src/hash.c
index 27d481947..feb06d843 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -144,7 +144,10 @@ mrb_hash_new_capa(mrb_state *mrb, mrb_int capa)
h = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
/* khash needs 1/4 empty space so it is not resized immediately */
- h->ht = kh_init_size(ht, mrb, (khint_t)(capa*4/3));
+ if (capa == 0)
+ h->ht = 0;
+ else
+ h->ht = kh_init_size(ht, mrb, (khint_t)(capa*4/3));
h->iv = 0;
return mrb_obj_value(h);
}