diff options
author | DJ Delorie <dj@delorie.com> | 2005-06-30 23:03:37 +0000 |
---|---|---|
committer | DJ Delorie <dj@delorie.com> | 2005-06-30 23:03:37 +0000 |
commit | c348aed31ffdd2d9f0da9d177c5f78cc6ecdc977 (patch) | |
tree | 928ceb116b391fac415d51498e6d00ed86bbfb9f /libiberty/hashtab.c | |
parent | 9bbc7160a8e1ba0bd9dec7e03e17e2b773d6c63a (diff) | |
download | gdb-c348aed31ffdd2d9f0da9d177c5f78cc6ecdc977.tar.gz |
merge from gcc
Diffstat (limited to 'libiberty/hashtab.c')
-rw-r--r-- | libiberty/hashtab.c | 55 |
1 files changed, 23 insertions, 32 deletions
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c index 5557e0a9686..a5671a0a768 100644 --- a/libiberty/hashtab.c +++ b/libiberty/hashtab.c @@ -64,15 +64,6 @@ Boston, MA 02110-1301, USA. */ #define CHAR_BIT 8 #endif -/* This macro defines reserved value for empty table entry. */ - -#define EMPTY_ENTRY ((PTR) 0) - -/* This macro defines reserved value for table entry which contained - a deleted element. */ - -#define DELETED_ENTRY ((PTR) 1) - static unsigned int higher_prime_index (unsigned long); static hashval_t htab_mod_1 (hashval_t, hashval_t, hashval_t, int); static hashval_t htab_mod (hashval_t, htab_t); @@ -290,7 +281,7 @@ htab_mod_m2 (hashval_t hash, htab_t htab) /* This function creates table with length slightly longer than given source length. Created hash table is initiated as empty (all the - hash table entries are EMPTY_ENTRY). The function returns the + hash table entries are HTAB_EMPTY_ENTRY). The function returns the created hash table, or NULL if memory allocation fails. */ htab_t @@ -401,7 +392,7 @@ htab_delete (htab_t htab) if (htab->del_f) for (i = size - 1; i >= 0; i--) - if (entries[i] != EMPTY_ENTRY && entries[i] != DELETED_ENTRY) + if (entries[i] != HTAB_EMPTY_ENTRY && entries[i] != HTAB_DELETED_ENTRY) (*htab->del_f) (entries[i]); if (htab->free_f != NULL) @@ -427,7 +418,7 @@ htab_empty (htab_t htab) if (htab->del_f) for (i = size - 1; i >= 0; i--) - if (entries[i] != EMPTY_ENTRY && entries[i] != DELETED_ENTRY) + if (entries[i] != HTAB_EMPTY_ENTRY && entries[i] != HTAB_DELETED_ENTRY) (*htab->del_f) (entries[i]); memset (entries, 0, size * sizeof (PTR)); @@ -448,9 +439,9 @@ find_empty_slot_for_expand (htab_t htab, hashval_t hash) PTR *slot = htab->entries + index; hashval_t hash2; - if (*slot == EMPTY_ENTRY) + if (*slot == HTAB_EMPTY_ENTRY) return slot; - else if (*slot == DELETED_ENTRY) + else if (*slot == HTAB_DELETED_ENTRY) abort (); hash2 = htab_mod_m2 (hash, htab); @@ -461,9 +452,9 @@ find_empty_slot_for_expand (htab_t htab, hashval_t hash) index -= size; slot = htab->entries + index; - if (*slot == EMPTY_ENTRY) + if (*slot == HTAB_EMPTY_ENTRY) return slot; - else if (*slot == DELETED_ENTRY) + else if (*slot == HTAB_DELETED_ENTRY) abort (); } } @@ -523,7 +514,7 @@ htab_expand (htab_t htab) { PTR x = *p; - if (x != EMPTY_ENTRY && x != DELETED_ENTRY) + if (x != HTAB_EMPTY_ENTRY && x != HTAB_DELETED_ENTRY) { PTR *q = find_empty_slot_for_expand (htab, (*htab->hash_f) (x)); @@ -556,8 +547,8 @@ htab_find_with_hash (htab_t htab, const PTR element, hashval_t hash) index = htab_mod (hash, htab); entry = htab->entries[index]; - if (entry == EMPTY_ENTRY - || (entry != DELETED_ENTRY && (*htab->eq_f) (entry, element))) + if (entry == HTAB_EMPTY_ENTRY + || (entry != HTAB_DELETED_ENTRY && (*htab->eq_f) (entry, element))) return entry; hash2 = htab_mod_m2 (hash, htab); @@ -569,8 +560,8 @@ htab_find_with_hash (htab_t htab, const PTR element, hashval_t hash) index -= size; entry = htab->entries[index]; - if (entry == EMPTY_ENTRY - || (entry != DELETED_ENTRY && (*htab->eq_f) (entry, element))) + if (entry == HTAB_EMPTY_ENTRY + || (entry != HTAB_DELETED_ENTRY && (*htab->eq_f) (entry, element))) return entry; } } @@ -615,9 +606,9 @@ htab_find_slot_with_hash (htab_t htab, const PTR element, first_deleted_slot = NULL; entry = htab->entries[index]; - if (entry == EMPTY_ENTRY) + if (entry == HTAB_EMPTY_ENTRY) goto empty_entry; - else if (entry == DELETED_ENTRY) + else if (entry == HTAB_DELETED_ENTRY) first_deleted_slot = &htab->entries[index]; else if ((*htab->eq_f) (entry, element)) return &htab->entries[index]; @@ -631,9 +622,9 @@ htab_find_slot_with_hash (htab_t htab, const PTR element, index -= size; entry = htab->entries[index]; - if (entry == EMPTY_ENTRY) + if (entry == HTAB_EMPTY_ENTRY) goto empty_entry; - else if (entry == DELETED_ENTRY) + else if (entry == HTAB_DELETED_ENTRY) { if (!first_deleted_slot) first_deleted_slot = &htab->entries[index]; @@ -649,7 +640,7 @@ htab_find_slot_with_hash (htab_t htab, const PTR element, if (first_deleted_slot) { htab->n_deleted--; - *first_deleted_slot = EMPTY_ENTRY; + *first_deleted_slot = HTAB_EMPTY_ENTRY; return first_deleted_slot; } @@ -688,13 +679,13 @@ htab_remove_elt_with_hash (htab_t htab, PTR element, hashval_t hash) PTR *slot; slot = htab_find_slot_with_hash (htab, element, hash, NO_INSERT); - if (*slot == EMPTY_ENTRY) + if (*slot == HTAB_EMPTY_ENTRY) return; if (htab->del_f) (*htab->del_f) (*slot); - *slot = DELETED_ENTRY; + *slot = HTAB_DELETED_ENTRY; htab->n_deleted++; } @@ -706,13 +697,13 @@ void htab_clear_slot (htab_t htab, PTR *slot) { if (slot < htab->entries || slot >= htab->entries + htab_size (htab) - || *slot == EMPTY_ENTRY || *slot == DELETED_ENTRY) + || *slot == HTAB_EMPTY_ENTRY || *slot == HTAB_DELETED_ENTRY) abort (); if (htab->del_f) (*htab->del_f) (*slot); - *slot = DELETED_ENTRY; + *slot = HTAB_DELETED_ENTRY; htab->n_deleted++; } @@ -726,7 +717,7 @@ htab_traverse_noresize (htab_t htab, htab_trav callback, PTR info) { PTR *slot; PTR *limit; - + slot = htab->entries; limit = slot + htab_size (htab); @@ -734,7 +725,7 @@ htab_traverse_noresize (htab_t htab, htab_trav callback, PTR info) { PTR x = *slot; - if (x != EMPTY_ENTRY && x != DELETED_ENTRY) + if (x != HTAB_EMPTY_ENTRY && x != HTAB_DELETED_ENTRY) if (!(*callback) (slot, info)) break; } |