From 8f675cdd00e2c5b5a0f143f5e508dbbafdb20ccd Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 30 Oct 2018 22:11:51 +0000 Subject: support theap for T_HASH. [Feature #14989] * hash.c, internal.h: support theap for small Hash. Introduce RHASH_ARRAY (li_table) besides st_table and small Hash (<=8 entries) are managed by an array data structure. This array data can be managed by theap. If st_table is needed, then converting array data to st_table data. For st_table using code, we prepare "stlike" APIs which accepts hash value and are very similar to st_ APIs. This work is based on the GSoC achievement by tacinight and refined by ko1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- compile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'compile.c') diff --git a/compile.c b/compile.c index ec23fb6c18..927bca74ea 100644 --- a/compile.c +++ b/compile.c @@ -5017,7 +5017,7 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod INIT_ANCHOR(body_seq); INIT_ANCHOR(cond_seq); - rb_hash_tbl_raw(literals)->type = &cdhash_type; + RHASH_TBL_RAW(literals)->type = &cdhash_type; CHECK(COMPILE(head, "case base", node->nd_head)); @@ -7990,7 +7990,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor, int i; VALUE map = rb_hash_new_with_size(RARRAY_LEN(op)/2); - rb_hash_tbl_raw(map)->type = &cdhash_type; + RHASH_TBL_RAW(map)->type = &cdhash_type; op = rb_to_array_type(op); for (i=0; i