const unsigned char *sha1,
int *found)
{
- uint32_t i, hash, mask = (pdata->index_size - 1);
+ uint32_t i, mask = (pdata->index_size - 1);
- memcpy(&hash, sha1, sizeof(uint32_t));
- i = hash & mask;
+ i = sha1hash(sha1) & mask;
while (pdata->index[i] > 0) {
uint32_t pos = pdata->index[i] - 1;
if (pdata->index_size < 1024)
pdata->index_size = 1024;
- pdata->index = xrealloc(pdata->index, sizeof(uint32_t) * pdata->index_size);
- memset(pdata->index, 0, sizeof(int) * pdata->index_size);
+ free(pdata->index);
+ pdata->index = xcalloc(pdata->index_size, sizeof(*pdata->index));
entry = pdata->objects;