Add an explicit hash_delete() function.
This commit is contained in:
parent
6062df4a0f
commit
9d48d5b7d4
2 changed files with 8 additions and 0 deletions
|
@ -91,6 +91,13 @@ void *hash_search_or_insert(hash_t *hash, const void *key, const void *value) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Deleting */
|
||||||
|
|
||||||
|
void hash_delete(hash_t *hash, const void *key) {
|
||||||
|
uint32_t i = modulo(hash_function(key, hash->size), hash->n);
|
||||||
|
hash->values[i] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Utility functions */
|
/* Utility functions */
|
||||||
|
|
||||||
void hash_clear(hash_t *hash) {
|
void hash_clear(hash_t *hash) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ extern hash_t *hash_alloc(size_t n, size_t size) __attribute__ ((__malloc__));
|
||||||
extern void hash_free(hash_t *);
|
extern void hash_free(hash_t *);
|
||||||
|
|
||||||
extern void hash_insert(hash_t *, const void *key, const void *value);
|
extern void hash_insert(hash_t *, const void *key, const void *value);
|
||||||
|
extern void hash_delete(hash_t *, const void *key);
|
||||||
|
|
||||||
extern void *hash_search(const hash_t *, const void *key);
|
extern void *hash_search(const hash_t *, const void *key);
|
||||||
extern void *hash_search_or_insert(hash_t *, const void *key, const void *value);
|
extern void *hash_search_or_insert(hash_t *, const void *key, const void *value);
|
||||||
|
|
Loading…
Reference in a new issue