Skip to content

Commit ee8537e

Browse files
committed
Merge branch 'tb/pack-bitmap-write-cleanups'
The pack bitmap code saw some clean-up to prepare for a follow-up topic. * tb/pack-bitmap-write-cleanups: pack-bitmap: introduce `bitmap_writer_free()` pack-bitmap-write.c: avoid uninitialized 'write_as' field pack-bitmap: drop unused `max_bitmaps` parameter pack-bitmap: avoid use of static `bitmap_writer` pack-bitmap-write.c: move commit_positions into commit_pos fields object.h: add flags allocated by pack-bitmap.h
2 parents 00ffa1c + 85f360f commit ee8537e

File tree

5 files changed

+185
-138
lines changed

5 files changed

+185
-138
lines changed

builtin/pack-objects.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,6 +1315,7 @@ static void write_pack_file(void)
13151315
if (!pack_to_stdout) {
13161316
struct stat st;
13171317
struct strbuf tmpname = STRBUF_INIT;
1318+
struct bitmap_writer bitmap_writer;
13181319
char *idx_tmp_name = NULL;
13191320

13201321
/*
@@ -1340,8 +1341,9 @@ static void write_pack_file(void)
13401341
hash_to_hex(hash));
13411342

13421343
if (write_bitmap_index) {
1343-
bitmap_writer_set_checksum(hash);
1344-
bitmap_writer_build_type_index(
1344+
bitmap_writer_init(&bitmap_writer);
1345+
bitmap_writer_set_checksum(&bitmap_writer, hash);
1346+
bitmap_writer_build_type_index(&bitmap_writer,
13451347
&to_pack, written_list, nr_written);
13461348
}
13471349

@@ -1359,12 +1361,17 @@ static void write_pack_file(void)
13591361
strbuf_addstr(&tmpname, "bitmap");
13601362
stop_progress(&progress_state);
13611363

1362-
bitmap_writer_show_progress(progress);
1363-
bitmap_writer_select_commits(indexed_commits, indexed_commits_nr, -1);
1364-
if (bitmap_writer_build(&to_pack) < 0)
1364+
bitmap_writer_show_progress(&bitmap_writer,
1365+
progress);
1366+
bitmap_writer_select_commits(&bitmap_writer,
1367+
indexed_commits,
1368+
indexed_commits_nr);
1369+
if (bitmap_writer_build(&bitmap_writer, &to_pack) < 0)
13651370
die(_("failed to write bitmap index"));
1366-
bitmap_writer_finish(written_list, nr_written,
1371+
bitmap_writer_finish(&bitmap_writer,
1372+
written_list, nr_written,
13671373
tmpname.buf, write_bitmap_options);
1374+
bitmap_writer_free(&bitmap_writer);
13681375
write_bitmap_index = 0;
13691376
strbuf_setlen(&tmpname, tmpname_len);
13701377
}

midx-write.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,7 @@ static int write_midx_bitmap(const char *midx_name,
799799
{
800800
int ret, i;
801801
uint16_t options = 0;
802+
struct bitmap_writer writer;
802803
struct pack_idx_entry **index;
803804
char *bitmap_name = xstrfmt("%s-%s.bitmap", midx_name,
804805
hash_to_hex(midx_hash));
@@ -820,8 +821,10 @@ static int write_midx_bitmap(const char *midx_name,
820821
for (i = 0; i < pdata->nr_objects; i++)
821822
index[i] = &pdata->objects[i].idx;
822823

823-
bitmap_writer_show_progress(flags & MIDX_PROGRESS);
824-
bitmap_writer_build_type_index(pdata, index, pdata->nr_objects);
824+
bitmap_writer_init(&writer);
825+
bitmap_writer_show_progress(&writer, flags & MIDX_PROGRESS);
826+
bitmap_writer_build_type_index(&writer, pdata, index,
827+
pdata->nr_objects);
825828

826829
/*
827830
* bitmap_writer_finish expects objects in lex order, but pack_order
@@ -839,17 +842,19 @@ static int write_midx_bitmap(const char *midx_name,
839842
for (i = 0; i < pdata->nr_objects; i++)
840843
index[pack_order[i]] = &pdata->objects[i].idx;
841844

842-
bitmap_writer_select_commits(commits, commits_nr, -1);
843-
ret = bitmap_writer_build(pdata);
845+
bitmap_writer_select_commits(&writer, commits, commits_nr);
846+
ret = bitmap_writer_build(&writer, pdata);
844847
if (ret < 0)
845848
goto cleanup;
846849

847-
bitmap_writer_set_checksum(midx_hash);
848-
bitmap_writer_finish(index, pdata->nr_objects, bitmap_name, options);
850+
bitmap_writer_set_checksum(&writer, midx_hash);
851+
bitmap_writer_finish(&writer, index, pdata->nr_objects, bitmap_name,
852+
options);
849853

850854
cleanup:
851855
free(index);
852856
free(bitmap_name);
857+
bitmap_writer_free(&writer);
853858

854859
trace2_region_leave("midx", "write_midx_bitmap", the_repository);
855860

object.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ void object_array_init(struct object_array *array);
8181
* reflog.c: 10--12
8282
* builtin/show-branch.c: 0-------------------------------------------26
8383
* builtin/unpack-objects.c: 2021
84+
* pack-bitmap.h: 22
8485
*/
8586
#define FLAG_BITS 28
8687

0 commit comments

Comments
 (0)