mesa: add _mesa_HashNumEntries() function
authorBrian Paul <brianp@vmware.com>
Wed, 11 Jan 2012 19:58:43 +0000 (12:58 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 11 Jan 2012 19:58:45 +0000 (12:58 -0700)
Useful when debugging to find the number of texture objects, shader
programs, etc.

src/mesa/main/hash.c
src/mesa/main/hash.h

index 4b250ad546874c6cfb0d5600789b93026f7d25db..61c369a80cdada0d2fc67562875942a5fd92e877 100644 (file)
@@ -480,6 +480,26 @@ _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys)
 }
 
 
+/**
+ * Return the number of entries in the hash table.
+ */
+GLuint
+_mesa_HashNumEntries(const struct _mesa_HashTable *table)
+{
+   GLuint pos, count = 0;
+
+   for (pos = 0; pos < TABLE_SIZE; pos++) {
+      const struct HashEntry *entry;
+      for (entry = table->Table[pos]; entry; entry = entry->Next) {
+         count++;
+      }
+   }
+
+   return count;
+}
+
+
+
 #if 0 /* debug only */
 
 /**
index 4f916f9d01fbeed6963f37f7b65e2d350c20ec83..e935f8d398478f0a514af0e3afacf1207b71c116 100644 (file)
@@ -63,6 +63,9 @@ extern void _mesa_HashPrint(const struct _mesa_HashTable *table);
 
 extern GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys);
 
+extern GLuint
+_mesa_HashNumEntries(const struct _mesa_HashTable *table);
+
 extern void _mesa_test_hash_functions(void);