diff options
author | Zack Rusin <zack@tungstengraphics.com> | 2008-03-13 16:41:12 -0400 |
---|---|---|
committer | Zack Rusin <zack@tungstengraphics.com> | 2008-03-13 16:41:37 -0400 |
commit | a889928d85ac8ba7e1a7fe15393858a9422cf750 (patch) | |
tree | da9b2944fea3afe8bd3e97a262b89166b425e18a /src/gallium/auxiliary/cso_cache/cso_hash.h | |
parent | 3faf6230ff4b63833c072ac7afeb43c25d3cba22 (diff) |
add a way of removing an exact iterator from the hash
Diffstat (limited to 'src/gallium/auxiliary/cso_cache/cso_hash.h')
-rw-r--r-- | src/gallium/auxiliary/cso_cache/cso_hash.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_hash.h b/src/gallium/auxiliary/cso_cache/cso_hash.h index a3a65b68c8..73c4742006 100644 --- a/src/gallium/auxiliary/cso_cache/cso_hash.h +++ b/src/gallium/auxiliary/cso_cache/cso_hash.h @@ -68,14 +68,26 @@ int cso_hash_size(struct cso_hash *hash); /** - * Create a list of objects and just add entry with the same key to the list. + * Adds a data with the given key to the hash. If entry with the given + * key is already in the hash, this current entry is instered before it + * in the collision list. + * Function returns iterator pointing to the inserted item in the hash. */ struct cso_hash_iter cso_hash_insert(struct cso_hash *hash, unsigned key, void *data); +/** + * Removes the item pointed to by the current iterator from the hash. + * Note that the data itself is not erased and if it was a malloc'ed pointer + * it will have to be freed after calling this function by the callee. + * Function returns iterator pointing to the item after the removed one in + * the hash. + */ +struct cso_hash_iter cso_hash_erase(struct cso_hash *hash, struct cso_hash_iter iter); void *cso_hash_take(struct cso_hash *hash, unsigned key); + struct cso_hash_iter cso_hash_first_node(struct cso_hash *hash); /** @@ -97,7 +109,7 @@ struct cso_hash_iter cso_hash_iter_prev(struct cso_hash_iter iter); * Convenience routine to iterate over the collision list while doing a memory * comparison to see which entry in the list is a direct copy of our template * and returns that entry. - */ + */ void *cso_hash_find_data_from_template( struct cso_hash *hash, unsigned hash_key, void *templ, |