mirror of
https://github.com/git/git.git
synced 2026-01-11 13:23:12 +09:00
midx-write.c: extract fill_pack_from_midx()
When filling packs from an existing MIDX, `fill_packs_from_midx()` handles preparing a MIDX'd pack, and reading out its pack name from the existing MIDX. MIDX compaction will want to perform an identical operation, though the caller will look quite different than `fill_packs_from_midx()`. To reduce any future code duplication, extract `fill_pack_from_midx()` from `fill_packs_from_midx()` to prepare to call our new helper function in a future change. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
363485a311
commit
9ced91c83b
27
midx-write.c
27
midx-write.c
@ -910,6 +910,21 @@ cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int fill_pack_from_midx(struct pack_info *info,
|
||||
struct multi_pack_index *m,
|
||||
uint32_t pack_int_id)
|
||||
{
|
||||
if (prepare_midx_pack(m, pack_int_id))
|
||||
return error(_("could not load pack %d"), pack_int_id);
|
||||
|
||||
fill_pack_info(info,
|
||||
m->packs[pack_int_id - m->num_packs_in_base],
|
||||
m->pack_names[pack_int_id - m->num_packs_in_base],
|
||||
pack_int_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int fill_packs_from_midx(struct write_midx_context *ctx)
|
||||
{
|
||||
struct multi_pack_index *m;
|
||||
@ -918,13 +933,13 @@ static int fill_packs_from_midx(struct write_midx_context *ctx)
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < m->num_packs; i++) {
|
||||
if (prepare_midx_pack(m, m->num_packs_in_base + i))
|
||||
return error(_("could not load pack"));
|
||||
|
||||
ALLOC_GROW(ctx->info, ctx->nr + 1, ctx->alloc);
|
||||
fill_pack_info(&ctx->info[ctx->nr++], m->packs[i],
|
||||
m->pack_names[i],
|
||||
m->num_packs_in_base + i);
|
||||
|
||||
if (fill_pack_from_midx(&ctx->info[ctx->nr], m,
|
||||
m->num_packs_in_base + i) < 0)
|
||||
return -1;
|
||||
|
||||
ctx->nr++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user