X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fhash.c;h=02b327fc2b08fadf122527af0f2f29fae7c72e36;hb=cecb452e2ed6f2bcf2f9b216b8930b2de373e445;hp=b07e3e1753e007a7ab1effcc5d9e4d2e936d5a80;hpb=92065733b4a3d2b834da799309dbb2730d9cc5e4;p=gnulib.git diff --git a/lib/hash.c b/lib/hash.c index b07e3e175..02b327fc2 100644 --- a/lib/hash.c +++ b/lib/hash.c @@ -36,14 +36,14 @@ typedef enum {false = 0, true = 1} bool; #include #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 (); @@ -723,7 +723,7 @@ hash_find_entry (Hash_table *table, const void *entry, 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; @@ -854,6 +854,7 @@ hash_rehash (Hash_table *table, unsigned candidate) 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; @@ -943,7 +944,8 @@ hash_delete (Hash_table *table, const void *entry) 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--;