void* hash_lookup_entry(struct hash* p_hash, void* p_key) { struct hash_node* p_node = hash_get_node_by_key(p_hash, p_key); if (!p_node) { return p_node; } return p_node->p_value; }
void* hash_lookup_entry(hash_t *hash, void* key, unsigned int key_size) { hash_node_t *node = hash_get_node_by_key(hash, key, key_size); if (node == NULL) { return NULL; } return node->value; }
void hash_free_entry(hash_t *hash, void *key, unsigned int key_size) { hash_node_t *node = hash_get_node_by_key(hash, key, key_size); if(node == NULL) return; free(node->key); free(node->value); if(node->prev) node->prev->next = node->next; else { hash_node_t **bucket = hash_get_bucket(hash, key); *bucket = node->next; } if(node->next) node->next->prev = node->prev; free(node); }