From 1f5c74f6cf918d317c73b328dcd4cf6f55c44d8a Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Mon, 23 Jun 2008 21:22:14 -0400 Subject: [PATCH] call init_pack_revindex() lazily This makes life much easier for next patch, as well as being more efficient when the revindex is actually not used. Signed-off-by: Nicolas Pitre Signed-off-by: Junio C Hamano --- builtin-pack-objects.c | 2 -- pack-check.c | 1 - pack-revindex.c | 6 ++++-- pack-revindex.h | 1 - 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 447d492db..827673ce4 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1148,8 +1148,6 @@ static void get_object_details(void) sorted_by_offset[i] = objects + i; qsort(sorted_by_offset, nr_objects, sizeof(*sorted_by_offset), pack_offset_sort); - init_pack_revindex(); - for (i = 0; i < nr_objects; i++) check_object(sorted_by_offset[i]); diff --git a/pack-check.c b/pack-check.c index f4898732d..b99a9171c 100644 --- a/pack-check.c +++ b/pack-check.c @@ -107,7 +107,6 @@ static void show_pack_info(struct packed_git *p) nr_objects = p->num_objects; memset(chain_histogram, 0, sizeof(chain_histogram)); - init_pack_revindex(); for (i = 0; i < nr_objects; i++) { const unsigned char *sha1; diff --git a/pack-revindex.c b/pack-revindex.c index a8aa2cd6c..cd300bdff 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -40,7 +40,7 @@ static int pack_revindex_ix(struct packed_git *p) return -1 - i; } -void init_pack_revindex(void) +static void init_pack_revindex(void) { int num; struct packed_git *p; @@ -118,9 +118,11 @@ struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs) struct pack_revindex *rix; struct revindex_entry *revindex; + if (!pack_revindex_hashsz) + init_pack_revindex(); num = pack_revindex_ix(p); if (num < 0) - die("internal error: pack revindex uninitialized"); + die("internal error: pack revindex fubar"); rix = &pack_revindex[num]; if (!rix->revindex) diff --git a/pack-revindex.h b/pack-revindex.h index c3527a756..36a514a6c 100644 --- a/pack-revindex.h +++ b/pack-revindex.h @@ -6,7 +6,6 @@ struct revindex_entry { unsigned int nr; }; -void init_pack_revindex(void); struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs); #endif -- 2.30.2