summaryrefslogtreecommitdiffstats
path: root/refs.h
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-05-17 10:19:04 +0200
committerJunio C Hamano <gitster@pobox.com>2024-05-17 19:33:39 +0200
commit30aaff437fddd889ba429b50b96ea4c151c502c5 (patch)
tree21c333bae42ced8e44e48fc106924e47d87c97b1 /refs.h
parentrefs: move object peeling into "object.c" (diff)
downloadgit-30aaff437fddd889ba429b50b96ea4c151c502c5.tar.xz
git-30aaff437fddd889ba429b50b96ea4c151c502c5.zip
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 'refs.h')
-rw-r--r--refs.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/refs.h b/refs.h
index 56d9714293..e043b6cfa3 100644
--- a/refs.h
+++ b/refs.h
@@ -127,13 +127,14 @@ void ref_store_release(struct ref_store *ref_store);
* Return the peeled value of the oid currently being iterated via
* for_each_ref(), etc. This is equivalent to calling:
*
- * peel_object(oid, &peeled);
+ * peel_object(r, oid, &peeled);
*
* with the "oid" value given to the each_ref_fn callback, except
* that some ref storage may be able to answer the query without
* actually loading the object in memory.
*/
-int peel_iterated_oid(const struct object_id *base, struct object_id *peeled);
+int peel_iterated_oid(struct repository *r,
+ const struct object_id *base, struct object_id *peeled);
/**
* Resolve refname in the nested "gitlink" repository in the specified