示例#1
0
文件: _chunker.c 项目: Ernest0x/attic
static uint32_t
buzhash(const unsigned char *data, size_t len, const uint32_t *h)
{
    size_t i;
    uint32_t sum = 0;
    for(i = len - 1; i > 0; i--)
    {
        sum ^= BARREL_SHIFT(h[*data], i);
        data++;
    }
    return sum ^ h[*data];
}
示例#2
0
文件: _chunker.c 项目: Ernest0x/attic
static uint32_t
buzhash_update(uint32_t sum, unsigned char remove, unsigned char add, size_t len, const uint32_t *h)
{
    return BARREL_SHIFT(sum, 1) ^ BARREL_SHIFT(h[remove], len) ^ h[add];
}
示例#3
0
static uint32_t
buzhash_update(uint32_t sum, unsigned char remove, unsigned char add, size_t len, const uint32_t *h)
{
    uint32_t lenmod = len & 0x1f;  /* Note: replace by constant to get small speedup */
    return BARREL_SHIFT(sum, 1) ^ BARREL_SHIFT(h[remove], lenmod) ^ h[add];
}