Leave `hash->ht` to be `NULL` if initial capacity is zero.
MODIFY
src/hash.c
src/hash.c
@@ -144,6 +144,9 @@ 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 */
+ 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);

Leave `hash->ht` to be `NULL` if initial capacity is zero.