Browse Source

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>
maint
Nicolas Pitre 17 years ago committed by Junio C Hamano
parent
commit
1f5c74f6cf
  1. 2
      builtin-pack-objects.c
  2. 1
      pack-check.c
  3. 6
      pack-revindex.c
  4. 1
      pack-revindex.h

2
builtin-pack-objects.c

@ -1148,8 +1148,6 @@ static void get_object_details(void) @@ -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]);


1
pack-check.c

@ -107,7 +107,6 @@ static void show_pack_info(struct packed_git *p) @@ -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;

6
pack-revindex.c

@ -40,7 +40,7 @@ static int pack_revindex_ix(struct packed_git *p) @@ -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) @@ -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)

1
pack-revindex.h

@ -6,7 +6,6 @@ struct revindex_entry { @@ -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

Loading…
Cancel
Save