From 107a2ec9eef53dee038c1bcc0d956c5667e0b68f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 16 Feb 2010 08:21:38 -0700 Subject: 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 (cherry picked from commit 3094adb3caeb90124359db2356df3bf8ee94800a) --- src/mesa/main/hash.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/mesa/main/hash.c') diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c index 7c3c7a6bdb..fdfbe6b4f4 100644 --- a/src/mesa/main/hash.c +++ b/src/mesa/main/hash.c @@ -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; } -- cgit v1.2.3