[PATCH 1/3] call init_pack_revindex() lazily
From: Nicolas Pitre <hidden>
Date: 2016-06-15 22:44:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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 447d492..827673c 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 f489873..b99a917 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 a8aa2cd..cd300bd 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 c3527a7..36a514a 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
--
1.5.6.GIT