From: Eric Wong Date: 2015-08-12T13:32:53+00:00 Subject: [ruby-core:70349] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI Btw, did you consider using flexible array to avoid extra malloc and improve cache locality? Since we introduce new API anyways, we may change the tbl argument to ** so rb_id_table_insert can modify tbl as needed. Something like: int rb_id_table_insert(struct rb_id_table **tbl, ID id, VALUE val); struct hash_id_table { int capa; int num; int used; item_t items[1]; /* flexible array */ };