Skip to content

Commit 862f88c

Browse files
committed
Merge branch 'tb/pack-bitmap-write-cleanups' into tb/pseudo-merge-reachability-bitmap
* 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 786a3e4 + 85f360f commit 862f88c

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
@@ -1314,6 +1314,7 @@ static void write_pack_file(void)
13141314
if (!pack_to_stdout) {
13151315
struct stat st;
13161316
struct strbuf tmpname = STRBUF_INIT;
1317+
struct bitmap_writer bitmap_writer;
13171318
char *idx_tmp_name = NULL;
13181319

13191320
/*
@@ -1339,8 +1340,9 @@ static void write_pack_file(void)
13391340
hash_to_hex(hash));
13401341

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

@@ -1358,12 +1360,17 @@ static void write_pack_file(void)
13581360
strbuf_addstr(&tmpname, "bitmap");
13591361
stop_progress(&progress_state);
13601362

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

midx-write.c

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

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

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

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

846-
bitmap_writer_set_checksum(midx_hash);
847-
bitmap_writer_finish(index, pdata->nr_objects, bitmap_name, options);
849+
bitmap_writer_set_checksum(&writer, midx_hash);
850+
bitmap_writer_finish(&writer, index, pdata->nr_objects, bitmap_name,
851+
options);
848852

849853
cleanup:
850854
free(index);
851855
free(bitmap_name);
856+
bitmap_writer_free(&writer);
852857

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

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)