diff options
author | Nicolas Pitre <nico@cam.org> | 2007-04-04 16:49:04 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-05 14:59:47 -0700 |
commit | d72308e01c5977177cda0aed06cfeee9192e1247 (patch) | |
tree | c42895d515c9bdae4d429ddd93c74b2f082fe09d /sha1_file.c | |
parent | d5ad36fe3584551a09160edce3e76d559d412ae5 (diff) | |
download | git-d72308e01c5977177cda0aed06cfeee9192e1247.tar.gz git-d72308e01c5977177cda0aed06cfeee9192e1247.tar.xz |
clean up and optimize nth_packed_object_sha1() usage
Let's avoid the open coded pack index reference in pack-object and use
nth_packed_object_sha1() instead. This will help encapsulating index
format differences in one place.
And while at it there is no reason to copy SHA1's over and over while a
direct pointer to it in the index will do just fine.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sha1_file.c b/sha1_file.c index 9c2603842..4304fe9bb 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1532,15 +1532,14 @@ uint32_t num_packed_objects(const struct packed_git *p) return (uint32_t)((p->index_size - 20 - 20 - 4*256) / 24); } -int nth_packed_object_sha1(const struct packed_git *p, uint32_t n, - unsigned char* sha1) +const unsigned char *nth_packed_object_sha1(const struct packed_git *p, + uint32_t n) { const unsigned char *index = p->index_data; index += 4 * 256; if (num_packed_objects(p) <= n) - return -1; - hashcpy(sha1, index + 24 * n + 4); - return 0; + return NULL; + return index + 24 * n + 4; } off_t find_pack_entry_one(const unsigned char *sha1, |