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 <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nicolas Pitre 2008-06-23 21:22:14 -04:00 коммит произвёл Junio C Hamano
Родитель 6b516d984b
Коммит 1f5c74f6cf
4 изменённых файлов: 4 добавлений и 6 удалений

Просмотреть файл

@ -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]);

Просмотреть файл

@ -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;

Просмотреть файл

@ -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)

Просмотреть файл

@ -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