mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Doc fix.
This commit is contained in:
parent
65401399d7
commit
6cae84266c
29
src/hash.c
29
src/hash.c
@ -530,8 +530,8 @@ hash_table_for_each (struct hash_table *ht,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initiate iteration over HT. Get the next entry using
|
/* Initiate iteration over HT. Entries are obtained with
|
||||||
hash_table_iter_next. The typical loop looks like this:
|
hash_table_iter_next, a typical iteration loop looking like this:
|
||||||
|
|
||||||
hash_table_iterator iter;
|
hash_table_iterator iter;
|
||||||
for (hash_table_iterate (ht, &iter); hash_table_iter_next (&iter); )
|
for (hash_table_iterate (ht, &iter); hash_table_iter_next (&iter); )
|
||||||
@ -553,8 +553,8 @@ hash_table_iterate (struct hash_table *ht, hash_table_iterator *iter)
|
|||||||
ITER->value respectively and 1 is returned. When there are no more
|
ITER->value respectively and 1 is returned. When there are no more
|
||||||
entries, 0 is returned.
|
entries, 0 is returned.
|
||||||
|
|
||||||
The hash table must not be modified between calls to this
|
If the hash table is modified between calls to this function, the
|
||||||
function. */
|
result is undefined. */
|
||||||
|
|
||||||
int
|
int
|
||||||
hash_table_iter_next (hash_table_iterator *iter)
|
hash_table_iter_next (hash_table_iterator *iter)
|
||||||
@ -602,7 +602,7 @@ hash_table_count (const struct hash_table *ht)
|
|||||||
a hash function that returns 0 for any given object is a
|
a hash function that returns 0 for any given object is a
|
||||||
perfectly valid (albeit extremely bad) hash function. A hash
|
perfectly valid (albeit extremely bad) hash function. A hash
|
||||||
function that hashes a string by adding up all its characters is
|
function that hashes a string by adding up all its characters is
|
||||||
another example of a valid (but quite bad) hash function.
|
another example of a valid (but still quite bad) hash function.
|
||||||
|
|
||||||
It is not hard to make hash and test functions agree about
|
It is not hard to make hash and test functions agree about
|
||||||
equality. For example, if the test function compares strings
|
equality. For example, if the test function compares strings
|
||||||
@ -610,24 +610,25 @@ hash_table_count (const struct hash_table *ht)
|
|||||||
characters when calculating the hash value. That ensures that
|
characters when calculating the hash value. That ensures that
|
||||||
two strings differing only in case will hash the same.
|
two strings differing only in case will hash the same.
|
||||||
|
|
||||||
- If you care about performance, choose a hash function with as
|
- To prevent performance degradation, choose a hash function with
|
||||||
good "spreading" as possible. A good hash function will use all
|
as good "spreading" as possible. A good hash function will use
|
||||||
the bits of the input when calculating the hash, and will react
|
all the bits of the input when calculating the hash, and will
|
||||||
to even small changes in input with a completely different
|
react to even small changes in input with a completely different
|
||||||
output. Finally, don't make the hash function itself overly
|
output. But don't make the hash function itself overly slow,
|
||||||
slow, because you'll be incurring a non-negligible overhead to
|
because you'll be incurring a non-negligible overhead to all hash
|
||||||
all hash table operations. */
|
table operations. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for hash tables whose keys are strings.
|
* Support for hash tables whose keys are strings.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* 31 bit hash function. Taken from Gnome's glib, modified to use
|
/* Base 31 hash function. Taken from Gnome's glib, modified to use
|
||||||
standard C types.
|
standard C types.
|
||||||
|
|
||||||
We used to use the popular hash function from the Dragon Book, but
|
We used to use the popular hash function from the Dragon Book, but
|
||||||
this one seems to perform much better. */
|
this one seems to perform much better, both by being faster and by
|
||||||
|
generating less collisions. */
|
||||||
|
|
||||||
static unsigned long
|
static unsigned long
|
||||||
hash_string (const void *key)
|
hash_string (const void *key)
|
||||||
|
Loading…
Reference in New Issue
Block a user