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>
This commit is contained in:
committed by
Junio C Hamano
parent
27fdf8f4ed
commit
ad6c41f4b7
@ -884,21 +884,18 @@ static int reftable_be_read_symbolic_ref(struct ref_store *ref_store,
|
|||||||
{
|
{
|
||||||
struct reftable_ref_store *refs =
|
struct reftable_ref_store *refs =
|
||||||
reftable_be_downcast(ref_store, REF_STORE_READ, "read_symbolic_ref");
|
reftable_be_downcast(ref_store, REF_STORE_READ, "read_symbolic_ref");
|
||||||
struct reftable_ref_record ref = {0};
|
|
||||||
struct reftable_backend *be;
|
struct reftable_backend *be;
|
||||||
|
struct object_id oid;
|
||||||
|
unsigned int type = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = backend_for(&be, refs, refname, &refname, 1);
|
ret = backend_for(&be, refs, refname, &refname, 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = reftable_stack_read_ref(be->stack, refname, &ref);
|
ret = reftable_backend_read_ref(be, refname, &oid, referent, &type);
|
||||||
if (ret == 0 && ref.value_type == REFTABLE_REF_SYMREF)
|
if (type != REF_ISSYMREF)
|
||||||
strbuf_addstr(referent, ref.value.symref);
|
|
||||||
else
|
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
reftable_ref_record_release(&ref);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user