Skip to content

Commit

Permalink
st refactor add_packed_direct a bit
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
shyouhei committed Jan 15, 2012
1 parent 638f696 commit 9ed8c1f
Showing 1 changed file with 8 additions and 13 deletions.
21 changes: 8 additions & 13 deletions st.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,20 +469,18 @@ 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);
PVAL_SET(table, i, value);
}
else {
unpack_entries(table);
res = 0;
add_direct(table, key, value, key, key % table->num_bins);
}
return res;
}


Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 9ed8c1f

Please sign in to comment.