diff options
author | Patrick Steinhardt <ps@pks.im> | 2024-05-17 10:19:04 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-05-17 10:33:39 -0700 |
commit | 30aaff437fddd889ba429b50b96ea4c151c502c5 (patch) | |
tree | 21c333bae42ced8e44e48fc106924e47d87c97b1 /object.c | |
parent | 19c76e8235747a61a703fe3bf7a5e40caf6fa3fa (diff) |
refs: pass repo when peeling objects
Both `peel_object()` and `peel_iterated_oid()` implicitly rely on
`the_repository` to look up objects. Despite the fact that we want to
get rid of `the_repository`, it also leads to some restrictions in our
ref iterators when trying to retrieve the peeled value for a repository
other than `the_repository`.
Refactor these functions such that both take a repository as argument
and remove the now-unnecessary restrictions.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object.c')
-rw-r--r-- | object.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -207,12 +207,14 @@ struct object *lookup_object_by_type(struct repository *r, } } -enum peel_status peel_object(const struct object_id *name, struct object_id *oid) +enum peel_status peel_object(struct repository *r, + const struct object_id *name, + struct object_id *oid) { - struct object *o = lookup_unknown_object(the_repository, name); + struct object *o = lookup_unknown_object(r, name); if (o->type == OBJ_NONE) { - int type = oid_object_info(the_repository, name, NULL); + int type = oid_object_info(r, name, NULL); if (type < 0 || !object_as_type(o, type, 0)) return PEEL_INVALID; } @@ -220,7 +222,7 @@ enum peel_status peel_object(const struct object_id *name, struct object_id *oid if (o->type != OBJ_TAG) return PEEL_NON_TAG; - o = deref_tag_noverify(o); + o = deref_tag_noverify(r, o); if (!o) return PEEL_INVALID; |