diff options
author | Stefan Beller <sbeller@google.com> | 2018-06-28 18:22:19 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-06-29 10:43:40 -0700 |
commit | 8e4b0b6047e3cfbe627de6694c2eeae6904b41a1 (patch) | |
tree | e4c036c6cb3d4aa6701ac507eaf3deaf77a37d4a | |
parent | object.c: allow parse_object_buffer to handle arbitrary repositories (diff) | |
download | tgif-8e4b0b6047e3cfbe627de6694c2eeae6904b41a1.tar.xz |
object.c: allow parse_object to handle arbitrary repositories
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | object.c | 14 | ||||
-rw-r--r-- | object.h | 3 |
2 files changed, 8 insertions, 9 deletions
@@ -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) 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); @@ -124,8 +124,7 @@ void *object_as_type(struct repository *r, struct object *obj, enum object_type * * Returns NULL if the object is missing or corrupt. */ -#define parse_object(r, oid) parse_object_##r(oid) -struct object *parse_object_the_repository(const struct object_id *oid); +struct object *parse_object(struct repository *r, const struct object_id *oid); /* * Like parse_object, but will die() instead of returning NULL. If the |