add cso_hash_contains() function
authorAlan Hourihane <alanh@tungstengraphics.com>
Wed, 24 Sep 2008 19:42:57 +0000 (20:42 +0100)
committerAlan Hourihane <alanh@tungstengraphics.com>
Wed, 24 Sep 2008 19:43:56 +0000 (20:43 +0100)
src/gallium/auxiliary/cso_cache/cso_hash.c
src/gallium/auxiliary/cso_cache/cso_hash.h

index 7f0044c5a7f219c6d11a3d8a6253f9d1671a94ac..4e7664f9bf0316b49e146857a0f726b71877e022 100644 (file)
@@ -431,3 +431,9 @@ struct cso_hash_iter cso_hash_erase(struct cso_hash *hash, struct cso_hash_iter
    --hash->data.d->size;
    return ret;
 }
+
+boolean cso_hash_contains(struct cso_hash *hash, unsigned key)
+{
+   struct cso_node **node = cso_hash_find_node(hash, key);
+   return (*node != hash->data.e);
+}
index 85f3e276c6ae37a28e458ba06f00b5a4b43058b9..5891c325fa567ee027540611e7561326bef58ca3 100644 (file)
@@ -44,6 +44,7 @@
 #ifndef CSO_HASH_H
 #define CSO_HASH_H
 
+#include "pipe/p_compiler.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -95,6 +96,11 @@ struct cso_hash_iter cso_hash_first_node(struct cso_hash *hash);
  */
 struct cso_hash_iter cso_hash_find(struct cso_hash *hash, unsigned key);
 
+/**
+ * Returns true if a value with the given key exists in the hash
+ */
+boolean   cso_hash_contains(struct cso_hash *hash, unsigned key);
+
 
 int       cso_hash_iter_is_null(struct cso_hash_iter iter);
 unsigned  cso_hash_iter_key(struct cso_hash_iter iter);