diff options
author | Nicolas Pitre <nico@cam.org> | 2008-06-24 23:17:12 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-06-24 23:58:57 -0700 |
commit | 99093238bbf2cd886debf7bdb91478cb405ef66d (patch) | |
tree | 799a8766f4dc7d3414ac31200149ba9945b1c6c2 | |
parent | 8e21d63b02f1b26f7695ca515e51e4622a995af2 (diff) | |
download | git-99093238bbf2cd886debf7bdb91478cb405ef66d.tar.gz |
optimize verify-pack a bit
Using find_pack_entry_one() to get object offsets is rather suboptimal
when nth_packed_object_offset() can be used directly.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | cache.h | 1 | ||||
-rw-r--r-- | pack-check.c | 4 | ||||
-rw-r--r-- | sha1_file.c | 2 |
3 files changed, 3 insertions, 4 deletions
@@ -712,6 +712,7 @@ extern void close_pack_windows(struct packed_git *); extern void unuse_pack(struct pack_window **); extern struct packed_git *add_packed_git(const char *, int, int); extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t); +extern off_t nth_packed_object_offset(const struct packed_git *, uint32_t); extern off_t find_pack_entry_one(const unsigned char *, struct packed_git *); extern void *unpack_entry(struct packed_git *, off_t, enum object_type *, unsigned long *); extern unsigned long unpack_object_header_gently(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep); diff --git a/pack-check.c b/pack-check.c index b99a9171c0..d6dbd4b9d8 100644 --- a/pack-check.c +++ b/pack-check.c @@ -67,9 +67,7 @@ static int verify_packfile(struct packed_git *p, entries[i].sha1 = nth_packed_object_sha1(p, i); if (!entries[i].sha1) die("internal error pack-check nth-packed-object"); - entries[i].offset = find_pack_entry_one(entries[i].sha1, p); - if (!entries[i].offset) - die("internal error pack-check find-pack-entry-one"); + entries[i].offset = nth_packed_object_offset(p, i); } qsort(entries, nr_objects, sizeof(*entries), compare_entries); diff --git a/sha1_file.c b/sha1_file.c index b2db549d8a..e79b2c1145 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1714,7 +1714,7 @@ const unsigned char *nth_packed_object_sha1(struct packed_git *p, } } -static off_t nth_packed_object_offset(const struct packed_git *p, uint32_t n) +off_t nth_packed_object_offset(const struct packed_git *p, uint32_t n) { const unsigned char *index = p->index_data; index += 4 * 256; |