diff options
| author | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:26 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:26 +0900 |
| commit | 430439536bd8a334188460bbb9da9ce81ef95630 (patch) | |
| tree | 07b403f7257f49cde8f59c686c9289252ed310f1 | |
| parent | Merge branch 'jk/fast-import-history-bugfix' (diff) | |
| parent | tree: simplify parse_tree_indirect() (diff) | |
| download | git-430439536bd8a334188460bbb9da9ce81ef95630.tar.gz git-430439536bd8a334188460bbb9da9ce81ef95630.zip | |
Merge branch 'rs/parse-tree-indirect'
Code cleanup.
* rs/parse-tree-indirect:
tree: simplify parse_tree_indirect()
| -rw-r--r-- | tree.c | 18 |
1 files changed, 3 insertions, 15 deletions
@@ -244,19 +244,7 @@ void free_tree_buffer(struct tree *tree) struct tree *parse_tree_indirect(const struct object_id *oid) { - struct object *obj = parse_object(the_repository, oid); - do { - if (!obj) - return NULL; - if (obj->type == OBJ_TREE) - return (struct tree *) obj; - else if (obj->type == OBJ_COMMIT) - obj = &(get_commit_tree(((struct commit *)obj))->object); - else if (obj->type == OBJ_TAG) - obj = ((struct tag *) obj)->tagged; - else - return NULL; - if (!obj->parsed) - parse_object(the_repository, &obj->oid); - } while (1); + struct repository *r = the_repository; + struct object *obj = parse_object(r, oid); + return (struct tree *)repo_peel_to_type(r, NULL, 0, obj, OBJ_TREE); } |
