Skip to content

Commit

Permalink
packed_read_raw_ref(): read the reference from the mmapped buffer
Browse files Browse the repository at this point in the history
Instead of reading the reference from the `ref_cache`, read it
directly from the mmapped buffer.

Signed-off-by: Michael Haggerty <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
mhagger authored and gitster committed Sep 25, 2017
1 parent d1cf155 commit f3987ab
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions refs/packed-backend.c
Original file line number Diff line number Diff line change
Expand Up @@ -876,18 +876,22 @@ static int packed_read_raw_ref(struct ref_store *ref_store,
{
struct packed_ref_store *refs =
packed_downcast(ref_store, REF_STORE_READ, "read_raw_ref");

struct ref_entry *entry;
struct packed_ref_cache *packed_refs = get_packed_ref_cache(refs);
const char *rec;

*type = 0;

entry = get_packed_ref(refs, refname);
if (!entry) {
rec = find_reference_location(packed_refs, refname, 1);

if (!rec) {
/* refname is not a packed reference. */
errno = ENOENT;
return -1;
}

hashcpy(sha1, entry->u.value.oid.hash);
if (get_sha1_hex(rec, sha1))
die_invalid_line(refs->path, rec, packed_refs->eof - rec);

*type = REF_ISPACKED;
return 0;
}
Expand Down

0 comments on commit f3987ab

Please sign in to comment.