|
|
|
@ -245,28 +245,28 @@ struct object *parse_object_or_die(const struct object_id *oid,
@@ -245,28 +245,28 @@ struct object *parse_object_or_die(const struct object_id *oid,
|
|
|
|
|
die(_("unable to parse object: %s"), name ? name : oid_to_hex(oid)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
struct object *parse_object_the_repository(const struct object_id *oid) |
|
|
|
|
struct object *parse_object(struct repository *r, const struct object_id *oid) |
|
|
|
|
{ |
|
|
|
|
unsigned long size; |
|
|
|
|
enum object_type type; |
|
|
|
|
int eaten; |
|
|
|
|
const struct object_id *repl = lookup_replace_object(the_repository, oid); |
|
|
|
|
const struct object_id *repl = lookup_replace_object(r, oid); |
|
|
|
|
void *buffer; |
|
|
|
|
struct object *obj; |
|
|
|
|
|
|
|
|
|
obj = lookup_object(the_repository, oid->hash); |
|
|
|
|
obj = lookup_object(r, oid->hash); |
|
|
|
|
if (obj && obj->parsed) |
|
|
|
|
return obj; |
|
|
|
|
|
|
|
|
|
if ((obj && obj->type == OBJ_BLOB && has_object_file(oid)) || |
|
|
|
|
(!obj && has_object_file(oid) && |
|
|
|
|
oid_object_info(the_repository, oid, NULL) == OBJ_BLOB)) { |
|
|
|
|
oid_object_info(r, oid, NULL) == OBJ_BLOB)) { |
|
|
|
|
if (check_object_signature(repl, NULL, 0, NULL) < 0) { |
|
|
|
|
error("sha1 mismatch %s", oid_to_hex(oid)); |
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
parse_blob_buffer(lookup_blob(the_repository, oid), NULL, 0); |
|
|
|
|
return lookup_object(the_repository, oid->hash); |
|
|
|
|
parse_blob_buffer(lookup_blob(r, oid), NULL, 0); |
|
|
|
|
return lookup_object(r, oid->hash); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer = read_object_file(oid, &type, &size); |
|
|
|
@ -277,7 +277,7 @@ struct object *parse_object_the_repository(const struct object_id *oid)
@@ -277,7 +277,7 @@ struct object *parse_object_the_repository(const struct object_id *oid)
|
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
obj = parse_object_buffer(the_repository, oid, type, size, |
|
|
|
|
obj = parse_object_buffer(r, oid, type, size, |
|
|
|
|
buffer, &eaten); |
|
|
|
|
if (!eaten) |
|
|
|
|
free(buffer); |
|
|
|
|