/* hash - hashing table processing.
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Written by Jim Meyering, 1992.
This program is free software; you can redistribute it and/or modify
#include <assert.h>
#ifndef HAVE_DECL_FREE
-'this configure-time declaration test was not run'
+"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_FREE
void free ();
#endif
#ifndef HAVE_DECL_MALLOC
-'this configure-time declaration test was not run'
+"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MALLOC
char *malloc ();
return bucket->data;
assert (0);
+ return NULL;
}
/* Return the user data for the entry following ENTRY, where ENTRY has been
returned by a previous call to either `hash_get_first' or `hash_get_next'.
- Return NULL if there is no more entries. */
+ Return NULL if there are no more entries. */
void *
hash_get_next (const Hash_table *table, const void *entry)
return cursor->next->data;
/* Find first entry in any subsequent bucket. */
- for (; bucket < table->bucket_limit; bucket++)
+ while (++bucket < table->bucket_limit)
if (bucket->data)
return bucket->data;
divisor++;
}
- return candidate % divisor != 0;
+ return (candidate % divisor ? true : false);
}
/* Round a given CANDIDATE number up to the nearest prime, and return that
if (bucket->data == NULL)
return NULL;
- /* Check if then entry is found as the bucket head. */
+ /* See if the entry is the first in the bucket. */
if ((*table->comparator) (entry, bucket->data))
{
void *data = bucket->data;
table->bucket_limit = new_table->bucket_limit;
table->n_buckets = new_table->n_buckets;
table->n_buckets_used = new_table->n_buckets_used;
+ table->free_entry_list = new_table->free_entry_list;
/* table->n_entries already holds its value. */
#if USE_OBSTACK
table->entry_stack = new_table->entry_stack;
void *data;
struct hash_entry *bucket;
- if (data = hash_find_entry (table, entry, &bucket, true), !data)
+ data = hash_find_entry (table, entry, &bucket, true);
+ if (!data)
return NULL;
table->n_entries--;