diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-15 15:46:41 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-15 15:46:41 +0000 |
commit | 9ed8c1f15e3f755a6421a37ba114562071a98404 (patch) | |
tree | 907abe057681afbaa3f36fe6053ada8ec708b8be /st.c | |
parent | 638f696b6ea07878f6f9dada116cb93aed596176 (diff) |
st refactor add_packed_direct a bit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 21 |
1 files changed, 8 insertions, 13 deletions
@@ -469,10 +469,9 @@ unpack_entries(register st_table *table) *table = tmp_table; } -static int +static void add_packed_direct(st_table *table, st_data_t key, st_data_t value) { - int res = 1; if (table->num_entries < MAX_PACKED_NUMHASH) { st_index_t i = table->num_entries++; PKEY_SET(table, i, key); @@ -480,9 +479,8 @@ add_packed_direct(st_table *table, st_data_t key, st_data_t value) } else { unpack_entries(table); - res = 0; + add_direct(table, key, value, key, key % table->num_bins); } - return res; } @@ -498,9 +496,8 @@ st_insert(register st_table *table, register st_data_t key, st_data_t value) PVAL_SET(table, i, value); return 1; } - if (add_packed_direct(table, key, value)) { - return 0; - } + add_packed_direct(table, key, value); + return 0; } hash_val = do_hash(key, table); @@ -530,9 +527,8 @@ st_insert2(register st_table *table, register st_data_t key, st_data_t value, PVAL_SET(table, i, value); return 1; } - if (add_packed_direct(table, key, value)) { - return 0; - } + add_packed_direct(table, key, value); + return 0; } hash_val = do_hash(key, table); @@ -556,9 +552,8 @@ st_add_direct(st_table *table, st_data_t key, st_data_t value) st_index_t hash_val, bin_pos; if (table->entries_packed) { - if (add_packed_direct(table, key, value)) { - return; - } + add_packed_direct(table, key, value); + return; } hash_val = do_hash(key, table); |