mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
hash: Add _mesa_HashRemoveLocked() function.
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
fb5dcb81cc
commit
aded1160e5
2 changed files with 17 additions and 4 deletions
|
|
@ -328,8 +328,8 @@ _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data)
|
|||
* While holding the hash table's lock, searches the entry with the matching
|
||||
* key and unlinks it.
|
||||
*/
|
||||
void
|
||||
_mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
|
||||
static inline void
|
||||
_mesa_HashRemove_unlocked(struct _mesa_HashTable *table, GLuint key)
|
||||
{
|
||||
struct hash_entry *entry;
|
||||
|
||||
|
|
@ -343,17 +343,28 @@ _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
|
|||
return;
|
||||
}
|
||||
|
||||
mtx_lock(&table->Mutex);
|
||||
if (key == DELETED_KEY_VALUE) {
|
||||
table->deleted_key_data = NULL;
|
||||
} else {
|
||||
entry = _mesa_hash_table_search(table->ht, uint_key(key));
|
||||
_mesa_hash_table_remove(table->ht, entry);
|
||||
}
|
||||
mtx_unlock(&table->Mutex);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_mesa_HashRemoveLocked(struct _mesa_HashTable *table, GLuint key)
|
||||
{
|
||||
_mesa_HashRemove_unlocked(table, key);
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
|
||||
{
|
||||
mtx_lock(&table->Mutex);
|
||||
_mesa_HashRemove_unlocked(table, key);
|
||||
mtx_unlock(&table->Mutex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all entries in a hash table, but don't delete the table itself.
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ extern void *_mesa_HashLookupLocked(struct _mesa_HashTable *table, GLuint key);
|
|||
extern void _mesa_HashInsertLocked(struct _mesa_HashTable *table,
|
||||
GLuint key, void *data);
|
||||
|
||||
extern void _mesa_HashRemoveLocked(struct _mesa_HashTable *table, GLuint key);
|
||||
|
||||
extern void
|
||||
_mesa_HashDeleteAll(struct _mesa_HashTable *table,
|
||||
void (*callback)(GLuint key, void *data, void *userData),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue