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:
* 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;
size_t len = chunk.len;
u_int32_t hash = len, tmp;
u_int32_t tmp;
int rem;
if (!len || data == NULL)
@ -511,6 +511,14 @@ u_int32_t chunk_hash(chunk_t chunk)
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
*/

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);
/**
* 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.
*