diff options
author | Jim Meyering <jim@meyering.net> | 1997-09-21 04:41:19 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1997-09-21 04:41:19 +0000 |
commit | 2e1922942cfe74ce9f00b966560552ae894aaf0d (patch) | |
tree | 9a0815096ba647df5fb2f706902da5740592261d | |
parent | 2dd7796da0cb4355149771e7f726fe8562cd1f8a (diff) | |
download | coreutils-2e1922942cfe74ce9f00b966560552ae894aaf0d.tar.xz |
(hash_free_0): Remove prototype.
Move function to precede first use.
-rw-r--r-- | lib/hash.c | 96 |
1 files changed, 47 insertions, 49 deletions
diff --git a/lib/hash.c b/lib/hash.c index 74ea74210..0e4f2d61c 100644 --- a/lib/hash.c +++ b/lib/hash.c @@ -14,8 +14,6 @@ #define BUCKET_HEAD(ht, idx) ((ht)->hash_table[(idx)]) -static void hash_free_0 (HT *, int); - static int is_prime (candidate) unsigned long candidate; @@ -79,6 +77,53 @@ hash_get_n_slots_used (const HT *ht) return ht->hash_n_slots_used; } +/* Free all storage associated with HT that functions in this package + have allocated. If a key_freer function has been supplied (when HT + was created), this function applies it to the key of each entry before + freeing that entry. */ + +static void +hash_free_0 (HT *ht, int free_user_data) +{ + if (free_user_data && ht->hash_key_freer != NULL) + { + unsigned int i; + + for (i = 0; i < ht->hash_table_size; i++) + { + HASH_ENT *p; + HASH_ENT *next; + + for (p = BUCKET_HEAD (ht, i); p; p = next) + { + next = p->next; + ht->hash_key_freer (p->key); + } + } + } + +#ifdef USE_OBSTACK + obstack_free (&(ht->ht_obstack), NULL); +#else + { + unsigned int i; + for (i = 0; i < ht->hash_table_size; i++) + { + HASH_ENT *p; + HASH_ENT *next; + + for (p = BUCKET_HEAD (ht, i); p; p = next) + { + next = p->next; + free (p); + } + } + } +#endif + ht->hash_free_entry_list = NULL; + free (ht->hash_table); +} + /* FIXME-comment */ int @@ -612,53 +657,6 @@ hash_clear (HT *ht) ht->hash_dirty_max_chain_length = 0; } -/* Free all storage associated with HT that functions in this package - have allocated. If a key_freer function has been supplied (when HT - was created), this function applies it to the key of each entry before - freeing that entry. */ - -static void -hash_free_0 (HT *ht, int free_user_data) -{ - if (free_user_data && ht->hash_key_freer != NULL) - { - unsigned int i; - - for (i = 0; i < ht->hash_table_size; i++) - { - HASH_ENT *p; - HASH_ENT *next; - - for (p = BUCKET_HEAD (ht, i); p; p = next) - { - next = p->next; - ht->hash_key_freer (p->key); - } - } - } - -#ifdef USE_OBSTACK - obstack_free (&(ht->ht_obstack), NULL); -#else - { - unsigned int i; - for (i = 0; i < ht->hash_table_size; i++) - { - HASH_ENT *p; - HASH_ENT *next; - - for (p = BUCKET_HEAD (ht, i); p; p = next) - { - next = p->next; - free (p); - } - } - } -#endif - ht->hash_free_entry_list = NULL; - free (ht->hash_table); -} - void hash_free (HT *ht) { |