Added patty_dict_delete()

This commit is contained in:
XANTRONIX Development 2015-07-21 23:01:34 -05:00
parent 1bef463d8b
commit a67c7c057e
2 changed files with 19 additions and 0 deletions

View file

@ -41,6 +41,8 @@ void *patty_dict_get(patty_dict *dict, void *key, size_t keysz);
void *patty_dict_set(patty_dict *dict, void *key, size_t keysz, void *value);
void *patty_dict_delete(patty_dict *dict, void *key, size_t keysz);
void patty_dict_destroy(patty_dict *dict);
#endif /* _PATTY_DICT_H */

View file

@ -158,6 +158,23 @@ error_malloc_bucket:
return NULL;
}
void *patty_dict_delete(patty_dict *dict, void *key, size_t keysz) {
patty_dict_slot *slot;
void *value;
uint32_t hash = patty_hash(key, keysz);
if ((slot = patty_dict_slot_find(dict, hash)) == NULL) {
return NULL;
}
value = slot->value;
memset(slot, '\0', sizeof(*slot));
return value;
}
static int dict_item_release(void *key, size_t keysz, void *value, void *ctx) {
free(value);