]> git.ipfire.org Git - thirdparty/git.git/blobdiff - pack-objects.c
hashmap: factor out getting a hash code from a SHA1
[thirdparty/git.git] / pack-objects.c
index d01d851ce957c779ff98d243fea4476fa7a1008c..9992f3ecf249c32e5be31dc047bad46a4c4ac367 100644 (file)
@@ -7,10 +7,9 @@ static uint32_t locate_object_entry_hash(struct packing_data *pdata,
                                         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;
@@ -47,8 +46,8 @@ static void rehash_objects(struct packing_data *pdata)
        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;