midx: use context in write_midx_pack_names()

In an effort to align the write_midx_internal() to use the chunk-format
API, start converting chunk writing methods to match chunk_write_fn. The
first case is to convert write_midx_pack_names() to take "void *data".
We already have the necessary data in "struct write_midx_context", so
this conversion is rather mechanical.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Derrick Stolee 2021-02-18 14:07:27 +00:00 committed by Junio C Hamano
parent 577dc49696
commit b4d941420b
1 changed files with 10 additions and 11 deletions

21
midx.c
View File

@ -643,27 +643,26 @@ static struct pack_midx_entry *get_sorted_entries(struct multi_pack_index *m,
return deduplicated_entries; return deduplicated_entries;
} }


static size_t write_midx_pack_names(struct hashfile *f, static size_t write_midx_pack_names(struct hashfile *f, void *data)
struct pack_info *info,
uint32_t num_packs)
{ {
struct write_midx_context *ctx = data;
uint32_t i; uint32_t i;
unsigned char padding[MIDX_CHUNK_ALIGNMENT]; unsigned char padding[MIDX_CHUNK_ALIGNMENT];
size_t written = 0; size_t written = 0;


for (i = 0; i < num_packs; i++) { for (i = 0; i < ctx->nr; i++) {
size_t writelen; size_t writelen;


if (info[i].expired) if (ctx->info[i].expired)
continue; continue;


if (i && strcmp(info[i].pack_name, info[i - 1].pack_name) <= 0) if (i && strcmp(ctx->info[i].pack_name, ctx->info[i - 1].pack_name) <= 0)
BUG("incorrect pack-file order: %s before %s", BUG("incorrect pack-file order: %s before %s",
info[i - 1].pack_name, ctx->info[i - 1].pack_name,
info[i].pack_name); ctx->info[i].pack_name);


writelen = strlen(info[i].pack_name) + 1; writelen = strlen(ctx->info[i].pack_name) + 1;
hashwrite(f, info[i].pack_name, writelen); hashwrite(f, ctx->info[i].pack_name, writelen);
written += writelen; written += writelen;
} }


@ -990,7 +989,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index *


switch (chunk_ids[i]) { switch (chunk_ids[i]) {
case MIDX_CHUNKID_PACKNAMES: case MIDX_CHUNKID_PACKNAMES:
written += write_midx_pack_names(f, ctx.info, ctx.nr); written += write_midx_pack_names(f, &ctx);
break; break;


case MIDX_CHUNKID_OIDFANOUT: case MIDX_CHUNKID_OIDFANOUT: