incremental version of chunk_hash
This commit is contained in:
parent
6b83549d1a
commit
d6dc0a21fb
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue