optimize verify-pack a bit
authorNicolas Pitre <nico@cam.org>
Wed, 25 Jun 2008 03:17:12 +0000 (23:17 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2008 06:58:57 +0000 (23:58 -0700)
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>
cache.h
pack-check.c
sha1_file.c

diff --git a/cache.h b/cache.h
index a9c14da..c8954ef 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -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);
index b99a917..d6dbd4b 100644 (file)
@@ -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);
 
index b2db549..e79b2c1 100644 (file)
@@ -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;