diff options
author | Mattias Andrée <maandree@operamail.com> | 2014-07-28 05:21:55 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2014-07-28 05:21:55 +0200 |
commit | 368178c777870459b6e1a0275b94f178bbbafb2d (patch) | |
tree | 2a8d77f7469e9ceae20d4a1ae6461932815c2512 /src/libmdsserver/hash-table.c | |
parent | mds-registry: sync:ing and list action (diff) | |
download | mds-368178c777870459b6e1a0275b94f178bbbafb2d.tar.gz mds-368178c777870459b6e1a0275b94f178bbbafb2d.tar.bz2 mds-368178c777870459b6e1a0275b94f178bbbafb2d.tar.xz |
misc
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to '')
-rw-r--r-- | src/libmdsserver/hash-table.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libmdsserver/hash-table.c b/src/libmdsserver/hash-table.c index ab78f0a..dac9303 100644 --- a/src/libmdsserver/hash-table.c +++ b/src/libmdsserver/hash-table.c @@ -247,6 +247,30 @@ size_t hash_table_get(const hash_table_t* restrict this, size_t key) /** + * Look up an entry in the table + * + * @param this The hash table + * @param key The key associated with the value + * @return The entry associated with the key, `NULL` if the key was not used + */ +hash_entry_t* hash_table_get_entry(const hash_table_t* restrict this, size_t key) +{ + size_t key_hash = hash(this, key); + size_t index = truncate_hash(this, key_hash); + hash_entry_t* restrict bucket = this->buckets[index]; + + while (bucket) + { + if (TEST_KEY(this, bucket, key, key_hash)) + return bucket; + bucket = bucket->next; + } + + return NULL; +} + + +/** * Add an entry to the table * * @param this The hash table |