diff options
author | Stefan Beller <sbeller@google.com> | 2018-06-29 03:22:18 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-06-29 19:43:40 +0200 |
commit | 108ed1a3d88b04bb7a6d0b0a0e7c642a28a7845a (patch) | |
tree | a8650c91940e56f351e79bb11efa1ca725bf0893 | |
parent | commit.c: allow get_cached_commit_buffer to handle arbitrary repositories (diff) | |
download | git-108ed1a3d88b04bb7a6d0b0a0e7c642a28a7845a.tar.xz git-108ed1a3d88b04bb7a6d0b0a0e7c642a28a7845a.zip |
object.c: allow parse_object_buffer 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 | 18 | ||||
-rw-r--r-- | object.h | 3 |
2 files changed, 10 insertions, 11 deletions
@@ -185,21 +185,21 @@ struct object *lookup_unknown_object(const unsigned char *sha1) return obj; } -struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p) +struct object *parse_object_buffer(struct repository *r, const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p) { struct object *obj; *eaten_p = 0; obj = NULL; if (type == OBJ_BLOB) { - struct blob *blob = lookup_blob(the_repository, oid); + struct blob *blob = lookup_blob(r, oid); if (blob) { if (parse_blob_buffer(blob, buffer, size)) return NULL; obj = &blob->object; } } else if (type == OBJ_TREE) { - struct tree *tree = lookup_tree(the_repository, oid); + struct tree *tree = lookup_tree(r, oid); if (tree) { obj = &tree->object; if (!tree->buffer) @@ -211,20 +211,20 @@ struct object *parse_object_buffer_the_repository(const struct object_id *oid, e } } } else if (type == OBJ_COMMIT) { - struct commit *commit = lookup_commit(the_repository, oid); + struct commit *commit = lookup_commit(r, oid); if (commit) { - if (parse_commit_buffer(the_repository, commit, buffer, size, 1)) + if (parse_commit_buffer(r, commit, buffer, size, 1)) return NULL; - if (!get_cached_commit_buffer(the_repository, commit, NULL)) { - set_commit_buffer(the_repository, commit, buffer, size); + if (!get_cached_commit_buffer(r, commit, NULL)) { + set_commit_buffer(r, commit, buffer, size); *eaten_p = 1; } obj = &commit->object; } } else if (type == OBJ_TAG) { - struct tag *tag = lookup_tag(the_repository, oid); + struct tag *tag = lookup_tag(r, oid); if (tag) { - if (parse_tag_buffer(the_repository, tag, buffer, size)) + if (parse_tag_buffer(r, tag, buffer, size)) return NULL; obj = &tag->object; } @@ -138,8 +138,7 @@ struct object *parse_object_or_die(const struct object_id *oid, const char *name * parsing it. eaten_p indicates if the object has a borrowed copy * of buffer and the caller should not free() it. */ -#define parse_object_buffer(r, o, t, s, b, e) parse_object_buffer_##r(o, t, s, b, e) -struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p); +struct object *parse_object_buffer(struct repository *r, const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p); /** Returns the object, with potentially excess memory allocated. **/ struct object *lookup_unknown_object(const unsigned char *sha1); |