summaryrefslogtreecommitdiff
path: root/src/odb_pack.c
diff options
context:
space:
mode:
authorDavid Michael Barr <b@rr-dav.id.au>2012-12-03 10:36:32 +1100
committerDavid Michael Barr <b@rr-dav.id.au>2012-12-03 10:39:17 +1100
commitbfb8bcc1df18431e8e7cf2a9dce8acc95cd312e3 (patch)
tree9561c9e5f326a16f4d3621601e020d86401e4793 /src/odb_pack.c
parent44f9f547972efecd326fbf6e92ae1297cc9e1813 (diff)
downloadlibgit2-bfb8bcc1df18431e8e7cf2a9dce8acc95cd312e3.tar.gz
odb-pack: resurrect pack_backend__read_header
Diffstat (limited to 'src/odb_pack.c')
-rw-r--r--src/odb_pack.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/odb_pack.c b/src/odb_pack.c
index 35bf1580d..fc282dd14 100644
--- a/src/odb_pack.c
+++ b/src/odb_pack.c
@@ -384,19 +384,18 @@ cleanup:
*
***********************************************************/
-/*
-int pack_backend__read_header(git_rawobj *obj, git_odb_backend *backend, const git_oid *oid)
+static int pack_backend__read_header(size_t *len_p, git_otype *type_p, struct git_odb_backend *backend, const git_oid *oid)
{
- pack_location location;
+ struct git_pack_entry e;
+ int error;
- assert(obj && backend && oid);
+ assert(len_p && type_p && backend && oid);
- if (locate_packfile(&location, (struct pack_backend *)backend, oid) < 0)
- return GIT_ENOTFOUND;
+ if ((error = pack_entry_find(&e, (struct pack_backend *)backend, oid)) < 0)
+ return error;
- return read_header_packed(obj, &location);
+ return git_packfile_resolve_header(len_p, type_p, e.p, e.offset);
}
-*/
static int pack_backend__read(void **buffer_p, size_t *len_p, git_otype *type_p, git_odb_backend *backend, const git_oid *oid)
{
@@ -579,7 +578,7 @@ int git_odb_backend_one_pack(git_odb_backend **backend_out, const char *idx)
backend->parent.read = &pack_backend__read;
backend->parent.read_prefix = &pack_backend__read_prefix;
- backend->parent.read_header = NULL;
+ backend->parent.read_header = &pack_backend__read_header;
backend->parent.exists = &pack_backend__exists;
backend->parent.foreach = &pack_backend__foreach;
backend->parent.free = &pack_backend__free;
@@ -616,7 +615,7 @@ int git_odb_backend_pack(git_odb_backend **backend_out, const char *objects_dir)
backend->parent.read = &pack_backend__read;
backend->parent.read_prefix = &pack_backend__read_prefix;
- backend->parent.read_header = NULL;
+ backend->parent.read_header = &pack_backend__read_header;
backend->parent.exists = &pack_backend__exists;
backend->parent.foreach = &pack_backend__foreach;
backend->parent.writepack = &pack_backend__writepack;