{
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;
}