X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhash.c;h=129ead1a830b478ec8f27c8cc662611068d1a971;hp=4697b779bf65ef1ba4ec99de4d8ff0d122e342d3;hb=38a7829dcb4eb5dba28dbf0f05c6a80fea9217f8;hpb=2c772204111e678b7715937052c3e7217a42e1ad diff --git a/src/hash.c b/src/hash.c index 4697b779..129ead1a 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1,6 +1,6 @@ /* Hash tables. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -55,8 +55,8 @@ as that of the covered work. */ # endif # include # define c_tolower(x) tolower ((unsigned char) (x)) -# if __STDC_VERSION__ >= 199901L -# include /* for uintptr_t */ +# ifdef HAVE_STDINT_H +# include # else typedef unsigned long uintptr_t; # endif @@ -226,7 +226,7 @@ prime_size (int size, int *prime_offset) 243370577, 316381771, 411296309, 534685237, 695090819, 903618083, 1174703521, 1527114613, 1837299131, 2147483647 }; - int i; + size_t i; for (i = *prime_offset; i < countof (primes); i++) if (primes[i] >= size) @@ -423,14 +423,14 @@ grow_hash_table (struct hash_table *ht) table if necessary. */ void -hash_table_put (struct hash_table *ht, const void *key, void *value) +hash_table_put (struct hash_table *ht, const void *key, const void *value) { struct cell *c = find_cell (ht, key); if (CELL_OCCUPIED (c)) { /* update existing item */ c->key = (void *)key; /* const? */ - c->value = value; + c->value = (void *)value; return; } @@ -445,7 +445,7 @@ hash_table_put (struct hash_table *ht, const void *key, void *value) /* add new item */ ++ht->count; c->key = (void *)key; /* const? */ - c->value = value; + c->value = (void *)value; } /* Remove KEY->value mapping from HT. Return 0 if there was no such @@ -630,7 +630,7 @@ hash_table_count (const struct hash_table *ht) * Support for hash tables whose keys are strings. * */ - + /* Base 31 hash function. Taken from Gnome's glib, modified to use standard C types. @@ -643,11 +643,11 @@ hash_string (const void *key) { const char *p = key; unsigned int h = *p; - + if (h) for (p += 1; *p != '\0'; p++) h = (h << 5) - h + *p; - + return h; } @@ -681,11 +681,11 @@ hash_string_nocase (const void *key) { const char *p = key; unsigned int h = c_tolower (*p); - + if (h) for (p += 1; *p != '\0'; p++) h = (h << 5) - h + c_tolower (*p); - + return h; }