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>

Patrick Steinhardt committed Nov 26, 2024 at 07:42 UTC ad6c41f4b7e93f9c16a69d03a32d8f99d8428144
1 file changed +4 -7
refs/reftable-backend.c
+4 -7
@@ -884,21 +884,18 @@ static int reftable_be_read_symbolic_ref(struct ref_store *ref_store,
884 {
885 struct reftable_ref_store *refs =
886 reftable_be_downcast(ref_store, REF_STORE_READ, "read_symbolic_ref");
887 - struct reftable_ref_record ref = {0};
887 struct reftable_backend *be;
888 + struct object_id oid;
889 + unsigned int type = 0;
890 int ret;
891
892 ret = backend_for(&be, refs, refname, &refname, 1);
893 if (ret)
894 return ret;
895
895 - ret = reftable_stack_read_ref(be->stack, refname, &ref);
896 - if (ret == 0 && ref.value_type == REFTABLE_REF_SYMREF)
897 - strbuf_addstr(referent, ref.value.symref);
898 - else
896 + ret = reftable_backend_read_ref(be, refname, &oid, referent, &type);
897 + if (type != REF_ISSYMREF)
898 ret = -1;
900 -
901 - reftable_ref_record_release(&ref);
899 return ret;
900 }
901