diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2017-09-25 10:00:14 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-09-25 11:02:46 +0200 |
commit | ba1c052fa616eb93a654375e8b9d59daa47c28a8 (patch) | |
tree | 6f68177a994cd8c597a604850193fe7bdf5913e9 /refs/packed-backend.c | |
parent | packed_read_raw_ref(): read the reference from the mmapped buffer (diff) | |
download | git-ba1c052fa616eb93a654375e8b9d59daa47c28a8.tar.xz git-ba1c052fa616eb93a654375e8b9d59daa47c28a8.zip |
ref_store: implement `refs_peel_ref()` generically
We're about to stop storing packed refs in a `ref_cache`. That means
that the only way we have left to optimize `peel_ref()` is by checking
whether the reference being peeled is the one currently being iterated
over (in `current_ref_iter`), and if so, using `ref_iterator_peel()`.
But this can be done generically; it doesn't have to be implemented
per-backend.
So implement `refs_peel_ref()` in `refs.c` and remove the `peel_ref()`
method from the refs API.
This removes the last callers of a couple of functions, so delete
them. More cleanup to come...
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs/packed-backend.c')
-rw-r--r-- | refs/packed-backend.c | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/refs/packed-backend.c b/refs/packed-backend.c index be614e79f5..dbbba45502 100644 --- a/refs/packed-backend.c +++ b/refs/packed-backend.c @@ -850,26 +850,6 @@ static struct packed_ref_cache *get_packed_ref_cache(struct packed_ref_store *re return refs->cache; } -static struct ref_dir *get_packed_ref_dir(struct packed_ref_cache *packed_ref_cache) -{ - return get_ref_dir(packed_ref_cache->cache->root); -} - -static struct ref_dir *get_packed_refs(struct packed_ref_store *refs) -{ - return get_packed_ref_dir(get_packed_ref_cache(refs)); -} - -/* - * Return the ref_entry for the given refname from the packed - * references. If it does not exist, return NULL. - */ -static struct ref_entry *get_packed_ref(struct packed_ref_store *refs, - const char *refname) -{ - return find_ref_entry(get_packed_refs(refs), refname); -} - static int packed_read_raw_ref(struct ref_store *ref_store, const char *refname, unsigned char *sha1, struct strbuf *referent, unsigned int *type) @@ -896,21 +876,6 @@ static int packed_read_raw_ref(struct ref_store *ref_store, return 0; } -static int packed_peel_ref(struct ref_store *ref_store, - const char *refname, unsigned char *sha1) -{ - struct packed_ref_store *refs = - packed_downcast(ref_store, REF_STORE_READ | REF_STORE_ODB, - "peel_ref"); - struct ref_entry *r = get_packed_ref(refs, refname); - - if (!r || peel_entry(r, 0)) - return -1; - - hashcpy(sha1, r->u.value.peeled.hash); - return 0; -} - struct packed_ref_iterator { struct ref_iterator base; @@ -1597,7 +1562,6 @@ struct ref_storage_be refs_be_packed = { packed_initial_transaction_commit, packed_pack_refs, - packed_peel_ref, packed_create_symref, packed_delete_refs, packed_rename_ref, |