summaryrefslogtreecommitdiff
path: root/upb_table.c
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2009-07-08 11:39:07 -0700
committerJoshua Haberman <joshua@reverberate.org>2009-07-08 11:39:07 -0700
commitc208db0752461b055b4b672ae45ba0489263ef08 (patch)
tree6261f678f28eb1e347745b0b69a0c6f81f8933db /upb_table.c
parent797bd11247fb0d5774b3fd6d9d562eaa5f8b14ae (diff)
Pre-compute the hash table mask to avoid doing it in the critical path.
Diffstat (limited to 'upb_table.c')
-rw-r--r--upb_table.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/upb_table.c b/upb_table.c
index 03fab2f..3bbc7f7 100644
--- a/upb_table.c
+++ b/upb_table.c
@@ -30,6 +30,7 @@ void upb_table_init(struct upb_table *t, uint32_t size, uint16_t entry_size)
t->size_lg2 = 1;
while(size >>= 1) t->size_lg2++;
size_t bytes = upb_table_size(t) * t->entry_size;
+ t->mask = upb_table_size(t) - 1;
t->entries = malloc(bytes);
memset(t->entries, 0, bytes); /* Both tables consider 0's an empty entry. */
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback