зеркало из https://github.com/microsoft/git.git
midx: inline nth_midxed_pack_entry()
fill_midx_entry() finds the position of an object ID and passes it to nth_midxed_pack_entry(), which uses the position to look up the object ID for its own purposes. Inline the latter into the former to avoid that lookup. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
325006f2db
Коммит
893b563505
29
midx.c
29
midx.c
|
@ -276,14 +276,18 @@ uint32_t nth_midxed_pack_int_id(struct multi_pack_index *m, uint32_t pos)
|
|||
(off_t)pos * MIDX_CHUNK_OFFSET_WIDTH);
|
||||
}
|
||||
|
||||
static int nth_midxed_pack_entry(struct repository *r,
|
||||
struct multi_pack_index *m,
|
||||
struct pack_entry *e,
|
||||
uint32_t pos)
|
||||
int fill_midx_entry(struct repository * r,
|
||||
const struct object_id *oid,
|
||||
struct pack_entry *e,
|
||||
struct multi_pack_index *m)
|
||||
{
|
||||
uint32_t pos;
|
||||
uint32_t pack_int_id;
|
||||
struct packed_git *p;
|
||||
|
||||
if (!bsearch_midx(oid, m, &pos))
|
||||
return 0;
|
||||
|
||||
if (pos >= m->num_objects)
|
||||
return 0;
|
||||
|
||||
|
@ -305,10 +309,8 @@ static int nth_midxed_pack_entry(struct repository *r,
|
|||
|
||||
if (p->num_bad_objects) {
|
||||
uint32_t i;
|
||||
struct object_id oid;
|
||||
nth_midxed_object_oid(&oid, m, pos);
|
||||
for (i = 0; i < p->num_bad_objects; i++)
|
||||
if (hasheq(oid.hash,
|
||||
if (hasheq(oid->hash,
|
||||
p->bad_object_sha1 + the_hash_algo->rawsz * i))
|
||||
return 0;
|
||||
}
|
||||
|
@ -319,19 +321,6 @@ static int nth_midxed_pack_entry(struct repository *r,
|
|||
return 1;
|
||||
}
|
||||
|
||||
int fill_midx_entry(struct repository * r,
|
||||
const struct object_id *oid,
|
||||
struct pack_entry *e,
|
||||
struct multi_pack_index *m)
|
||||
{
|
||||
uint32_t pos;
|
||||
|
||||
if (!bsearch_midx(oid, m, &pos))
|
||||
return 0;
|
||||
|
||||
return nth_midxed_pack_entry(r, m, e, pos);
|
||||
}
|
||||
|
||||
/* Match "foo.idx" against either "foo.pack" _or_ "foo.idx". */
|
||||
static int cmp_idx_or_pack_name(const char *idx_or_pack_name,
|
||||
const char *idx_name)
|
||||
|
|
Загрузка…
Ссылка в новой задаче