diff options
author | Jeff Law <law@redhat.com> | 2004-04-13 08:48:56 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2004-04-13 08:48:56 -0600 |
commit | 7f96816adb80b45faef4c7f04464584128dc69c6 (patch) | |
tree | 29d3fb80f1928330a799e287f6a657a318546016 | |
parent | f778cbf0919aff0d88a1fe68ac0fd6ef753813ca (diff) | |
download | gcc-7f96816adb80b45faef4c7f04464584128dc69c6.zip gcc-7f96816adb80b45faef4c7f04464584128dc69c6.tar.gz gcc-7f96816adb80b45faef4c7f04464584128dc69c6.tar.bz2 |
hashtab.c (htab_remove_elt_with_hash): New function.
* hashtab.c (htab_remove_elt_with_hash): New function.
(htab_remove_elt): Implement in terms of htab_remove_elt_with_hash.
* hashtab.h (htab_remove_elt_with_hash): Prototype new function.
From-SVN: r80641
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/hashtab.h | 1 | ||||
-rw-r--r-- | libiberty/ChangeLog | 5 | ||||
-rw-r--r-- | libiberty/hashtab.c | 18 |
4 files changed, 26 insertions, 2 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index e415afa..4e26bce 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2004-04-13 Jeff Law <law@redhat.com> + + * hashtab.h (htab_remove_elt_with_hash): Prototype new function. + 2004-03-30 Zack Weinberg <zack@codesourcery.com> * hashtab.h, splay-tree.h: Use new shorter form of GTY markers. diff --git a/include/hashtab.h b/include/hashtab.h index 1af7368..a2ef32c 100644 --- a/include/hashtab.h +++ b/include/hashtab.h @@ -166,6 +166,7 @@ extern PTR *htab_find_slot_with_hash PARAMS ((htab_t, const void *, enum insert_option)); extern void htab_clear_slot PARAMS ((htab_t, void **)); extern void htab_remove_elt PARAMS ((htab_t, void *)); +extern void htab_remove_elt_with_hash PARAMS ((htab_t, void *, hashval_t)); extern void htab_traverse PARAMS ((htab_t, htab_trav, void *)); extern void htab_traverse_noresize PARAMS ((htab_t, htab_trav, void *)); diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 661ca4b..7da2d46 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,8 @@ +2004-04-13 Jeff Law <law@redhat.com> + + * hashtab.c (htab_remove_elt_with_hash): New function. + (htab_remove_elt): Implement in terms of htab_remove_elt_with_hash. + 2004-03-31 Richard Henderson <rth@redhat.com> * hashtab.c (htab_size): Move to top of file; mark inline. diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c index f775166..2639428 100644 --- a/libiberty/hashtab.c +++ b/libiberty/hashtab.c @@ -600,17 +600,31 @@ htab_find_slot (htab, element, insert) } /* This function deletes an element with the given value from hash + table (the hash is computed from the element). If there is no matching + element in the hash table, this function does nothing. */ + +void +htab_remove_elt (htab, element) + htab_t htab; + PTR element; +{ + htab_remove_elt_with_hash (htab, element, (*htab->hash_f) (element)); +} + + +/* This function deletes an element with the given value from hash table. If there is no matching element in the hash table, this function does nothing. */ void -htab_remove_elt (htab, element) +htab_remove_elt_with_hash (htab, element, hash) htab_t htab; PTR element; + hashval_t hash; { PTR *slot; - slot = htab_find_slot (htab, element, NO_INSERT); + slot = htab_find_slot_with_hash (htab, element, hash, NO_INSERT); if (*slot == EMPTY_ENTRY) return; |