summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-11-26 07:42:57 +0100
committerJunio C Hamano <gitster@pobox.com>2024-11-26 17:18:37 +0900
commitad6c41f4b7e93f9c16a69d03a32d8f99d8428144 (patch)
treec68036d5b191ff6122947c673093aad70d4bce32
parent27fdf8f4ed0b76f4c21c6ee1f95886c731c4e196 (diff)
refs/reftable: refactor reading symbolic refs to use reftable backend
Refactor the callback function that reads symbolic references in the reftable backend to use `reftable_backend_read_ref()` instead of accessing the reftable stack directly. This ensures that the function will benefit from the new caching layer that we're about to introduce. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--refs/reftable-backend.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/refs/reftable-backend.c b/refs/reftable-backend.c
index 88910207b8..2d06620ac8 100644
--- a/refs/reftable-backend.c
+++ b/refs/reftable-backend.c
@@ -884,21 +884,18 @@ static int reftable_be_read_symbolic_ref(struct ref_store *ref_store,
{
struct reftable_ref_store *refs =
reftable_be_downcast(ref_store, REF_STORE_READ, "read_symbolic_ref");
- struct reftable_ref_record ref = {0};
struct reftable_backend *be;
+ struct object_id oid;
+ unsigned int type = 0;
int ret;
ret = backend_for(&be, refs, refname, &refname, 1);
if (ret)
return ret;
- ret = reftable_stack_read_ref(be->stack, refname, &ref);
- if (ret == 0 && ref.value_type == REFTABLE_REF_SYMREF)
- strbuf_addstr(referent, ref.value.symref);
- else
+ ret = reftable_backend_read_ref(be, refname, &oid, referent, &type);
+ if (type != REF_ISSYMREF)
ret = -1;
-
- reftable_ref_record_release(&ref);
return ret;
}