]> git.ipfire.org Git - thirdparty/git.git/blobdiff - object.c
Merge branch 'bc/sha-256-part-2'
[thirdparty/git.git] / object.c
index 142ef69399a2fd81c36d81291c573295715b48b8..794c86650e9a976a0667cb8103a4ae0a9a0deaf2 100644 (file)
--- a/object.c
+++ b/object.c
@@ -262,7 +262,7 @@ struct object *parse_object(struct repository *r, const struct object_id *oid)
        if ((obj && obj->type == OBJ_BLOB && repo_has_object_file(r, oid)) ||
            (!obj && repo_has_object_file(r, oid) &&
             oid_object_info(r, oid, NULL) == OBJ_BLOB)) {
-               if (check_object_signature(repl, NULL, 0, NULL) < 0) {
+               if (check_object_signature(r, repl, NULL, 0, NULL) < 0) {
                        error(_("hash mismatch %s"), oid_to_hex(oid));
                        return NULL;
                }
@@ -272,7 +272,8 @@ struct object *parse_object(struct repository *r, const struct object_id *oid)
 
        buffer = repo_read_object_file(r, oid, &type, &size);
        if (buffer) {
-               if (check_object_signature(repl, buffer, size, type_name(type)) < 0) {
+               if (check_object_signature(r, repl, buffer, size,
+                                          type_name(type)) < 0) {
                        free(buffer);
                        error(_("hash mismatch %s"), oid_to_hex(repl));
                        return NULL;
@@ -307,6 +308,15 @@ int object_list_contains(struct object_list *list, struct object *obj)
        return 0;
 }
 
+void object_list_free(struct object_list **list)
+{
+       while (*list) {
+               struct object_list *p = *list;
+               *list = p->next;
+               free(p);
+       }
+}
+
 /*
  * A zero-length string to which object_array_entry::name can be
  * initialized without requiring a malloc/free.
@@ -480,6 +490,7 @@ struct raw_object_store *raw_object_store_new(void)
        memset(o, 0, sizeof(*o));
        INIT_LIST_HEAD(&o->packed_git_mru);
        hashmap_init(&o->pack_map, pack_map_entry_cmp, NULL, 0);
+       pthread_mutex_init(&o->replace_mutex, NULL);
        return o;
 }
 
@@ -507,6 +518,7 @@ void raw_object_store_clear(struct raw_object_store *o)
 
        oidmap_free(o->replace_map, 1);
        FREE_AND_NULL(o->replace_map);
+       pthread_mutex_destroy(&o->replace_mutex);
 
        free_commit_graph(o->commit_graph);
        o->commit_graph = NULL;