From 167358d00091069aac5874b38d04ef9ae20e1828 Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 29 Aug 2007 02:36:54 +0000 Subject: * include/ruby/st.h (struct st_table): add entries_packed 1-bit bitfield. decrease num_bins 1-bit. * st.c: pack numhash which have 5 or less entries in bins. (st_init_table_with_size): setup entries_packed flag. (st_clear): support packed mode. (st_lookup): ditto. (st_insert): ditto. (st_add_direct): ditto. (st_copy): ditto. (st_delete): ditto. (st_foreach): ditto. (st_reverse_foreach): ditto. (unpack_entries): new function for converting to unpacked mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/st.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/ruby') diff --git a/include/ruby/st.h b/include/ruby/st.h index 12dbd2c50d..728159121e 100644 --- a/include/ruby/st.h +++ b/include/ruby/st.h @@ -31,7 +31,8 @@ struct st_hash_type { struct st_table { const struct st_hash_type *type; - int num_bins; + unsigned int entries_packed : 1; + int num_bins : sizeof(int) * 8 - 1; int num_entries; struct st_table_entry **bins; struct st_table_entry *head; -- cgit v1.2.3