incremental version of chunk_hash

This commit is contained in:
Tobias Brunner 2008-12-10 13:43:51 +00:00
parent 6b83549d1a
commit d6dc0a21fb
2 changed files with 15 additions and 2 deletions

View File

@ -448,11 +448,11 @@ int chunk_compare(chunk_t a, chunk_t b)
* The implementation is based on Paul Hsieh's SuperFastHash: * The implementation is based on Paul Hsieh's SuperFastHash:
* http://www.azillionmonkeys.com/qed/hash.html * http://www.azillionmonkeys.com/qed/hash.html
*/ */
u_int32_t chunk_hash(chunk_t chunk) u_int32_t chunk_hash_inc(chunk_t chunk, u_int32_t hash)
{ {
u_char *data = chunk.ptr; u_char *data = chunk.ptr;
size_t len = chunk.len; size_t len = chunk.len;
u_int32_t hash = len, tmp; u_int32_t tmp;
int rem; int rem;
if (!len || data == NULL) if (!len || data == NULL)
@ -511,6 +511,14 @@ u_int32_t chunk_hash(chunk_t chunk)
return hash; return hash;
} }
/**
* Described in header.
*/
u_int32_t chunk_hash(chunk_t chunk)
{
return chunk_hash_inc(chunk, chunk.len);
}
/** /**
* output handler in printf() for chunks * output handler in printf() for chunks
*/ */

View File

@ -231,6 +231,11 @@ static inline bool chunk_equals(chunk_t a, chunk_t b)
*/ */
u_int32_t chunk_hash(chunk_t chunk); u_int32_t chunk_hash(chunk_t chunk);
/**
* Incremental version of chunk_hash. Use this to hash two or more chunks.
*/
u_int32_t chunk_hash_inc(chunk_t chunk, u_int32_t hash);
/** /**
* Get printf hooks for a chunk. * Get printf hooks for a chunk.
* *