mesa: Lock mutex around _mesa_HashLookup linked list chase.

Remove const qualifier from _mesa_HashLookup() table parameter to
avoid LOCK/UNLOCK warnings in the function body.

Signed-off-by: Brian Paul <brianp@vmware.com>

(cherry picked from commit 3094adb3caeb90124359db2356df3bf8ee94800a)
This commit is contained in:
Brian Paul
2010-02-16 08:21:38 -07:00
parent 693f4af63d
commit 107a2ec9ee
2 changed files with 6 additions and 3 deletions
+5 -2
View File
@@ -128,7 +128,7 @@ _mesa_DeleteHashTable(struct _mesa_HashTable *table)
* \return pointer to user's data or NULL if key not in table
*/
void *
_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key)
_mesa_HashLookup(struct _mesa_HashTable *table, GLuint key)
{
GLuint pos;
const struct HashEntry *entry;
@@ -137,13 +137,16 @@ _mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key)
assert(key);
pos = HASH_FUNC(key);
_glthread_LOCK_MUTEX(table->Mutex);
entry = table->Table[pos];
while (entry) {
if (entry->Key == key) {
return entry->Data;
_glthread_UNLOCK_MUTEX(table->Mutex);
return entry->Data;
}
entry = entry->Next;
}
_glthread_UNLOCK_MUTEX(table->Mutex);
return NULL;
}
+1 -1
View File
@@ -39,7 +39,7 @@ extern struct _mesa_HashTable *_mesa_NewHashTable(void);
extern void _mesa_DeleteHashTable(struct _mesa_HashTable *table);
extern void *_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key);
extern void *_mesa_HashLookup(struct _mesa_HashTable *table, GLuint key);
extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data);