aboutsummaryrefslogtreecommitdiff
path: root/refs/files-backend.c
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2017-06-23 09:01:38 +0200
committerJunio C Hamano <gitster@pobox.com>2017-06-23 13:27:33 -0700
commite0cc8ac8202f7d6a721cc87fd5346a6c7f453302 (patch)
tree7b0d242359c2b3e2efef73229eda569f7ade5a8c /refs/files-backend.c
parent67be7c5a593da8905added96723448d28b4a1812 (diff)
downloadgit-e0cc8ac8202f7d6a721cc87fd5346a6c7f453302.tar.gz
git-e0cc8ac8202f7d6a721cc87fd5346a6c7f453302.tar.xz
packed_ref_store: make class into a subclass of `ref_store`
Add the infrastructure to make `packed_ref_store` implement `ref_store`, at least formally (few of the methods are actually implemented yet). Change the functions in its interface to take `ref_store *` arguments. Change `files_ref_store` to store a pointer to `ref_store *` and to call functions via the virtual `ref_store` interface where possible. This also means that a few `packed_ref_store` functions can become static. This is a work in progress. Some more `ref_store` methods will soon be implemented (e.g., those having to do with reference transactions). But some of them will never be implemented (e.g., those having to do with symrefs or reflogs). Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs/files-backend.c')
-rw-r--r--refs/files-backend.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 7df974779..60f4fa5e7 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -28,7 +28,7 @@ struct files_ref_store {
struct ref_cache *loose;
- struct packed_ref_store *packed_ref_store;
+ struct ref_store *packed_ref_store;
};
static void clear_loose_ref_cache(struct files_ref_store *refs)
@@ -311,8 +311,8 @@ stat_ref:
if (lstat(path, &st) < 0) {
if (errno != ENOENT)
goto out;
- if (packed_read_raw_ref(refs->packed_ref_store, refname,
- sha1, referent, type)) {
+ if (refs_read_raw_ref(refs->packed_ref_store, refname,
+ sha1, referent, type)) {
errno = ENOENT;
goto out;
}
@@ -351,8 +351,8 @@ stat_ref:
* ref is supposed to be, there could still be a
* packed ref:
*/
- if (packed_read_raw_ref(refs->packed_ref_store, refname,
- sha1, referent, type)) {
+ if (refs_read_raw_ref(refs->packed_ref_store, refname,
+ sha1, referent, type)) {
errno = EISDIR;
goto out;
}
@@ -683,7 +683,7 @@ static int files_peel_ref(struct ref_store *ref_store,
* have REF_KNOWS_PEELED.
*/
if (flag & REF_ISPACKED &&
- !packed_peel_ref(refs->packed_ref_store, refname, sha1))
+ !refs_peel_ref(refs->packed_ref_store, refname, sha1))
return 0;
return peel_object(base, sha1);
@@ -804,8 +804,8 @@ static struct ref_iterator *files_ref_iterator_begin(
* ones in files_ref_iterator_advance(), after we have merged
* the packed and loose references.
*/
- packed_iter = packed_ref_iterator_begin(
- refs->packed_ref_store, prefix,
+ packed_iter = refs_ref_iterator_begin(
+ refs->packed_ref_store, prefix, 0,
DO_FOR_EACH_INCLUDE_BROKEN);
iter->iter0 = overlay_ref_iterator_begin(loose_iter, packed_iter);