]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs/reftable: refactor reading symbolic refs to use reftable backend
authorPatrick Steinhardt <ps@pks.im>
Tue, 26 Nov 2024 06:42:57 +0000 (07:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 Nov 2024 08:18:37 +0000 (17:18 +0900)
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>
refs/reftable-backend.c

index 88910207b87b1fa5bbbedebc8817f8afab937b77..2d06620ac8b1b7f07783cd5873dbe0fe67b84bd6 100644 (file)
@@ -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;
 }