The key is just an unsigned int so there is never any real hashing done. --- src/mesa/main/hash.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c index 670438a..eb25d88 100644 --- a/src/mesa/main/hash.c +++ b/src/mesa/main/hash.c @@ -176,21 +176,22 @@ static inline void * _mesa_HashLookup_unlocked(struct _mesa_HashTable *table, GLuint key) { const struct hash_entry *entry; assert(table); assert(key); if (key == DELETED_KEY_VALUE) return table->deleted_key_data; - entry = _mesa_hash_table_search(table->ht, uint_key(key)); + uint32_t hash = uint_hash(key); + entry = _mesa_hash_table_search_pre_hashed(table->ht, hash, uint_key(key)); if (!entry) return NULL; return entry->data; } /** * Lookup an entry in the hash table. * @@ -340,21 +341,23 @@ _mesa_HashRemove_unlocked(struct _mesa_HashTable *table, GLuint key) /* have to check this outside of mutex lock */ if (table->InDeleteAll) { _mesa_problem(NULL, "_mesa_HashRemove illegally called from " "_mesa_HashDeleteAll callback function"); return; } if (key == DELETED_KEY_VALUE) { table->deleted_key_data = NULL; } else { - entry = _mesa_hash_table_search(table->ht, uint_key(key)); + uint32_t hash = uint_hash(key); + entry = _mesa_hash_table_search_pre_hashed(table->ht, hash, + uint_key(key)); _mesa_hash_table_remove(table->ht, entry); } } void _mesa_HashRemoveLocked(struct _mesa_HashTable *table, GLuint key) { _mesa_HashRemove_unlocked(table, key); } -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev