pack-bitmap: drop "loaded" flag

In the early days of the bitmap code, there was a single static bitmap_index struct that was used behind the scenes, and any bitmap-related functions could lazily check bitmap_git.loaded to see if they needed to read the on-disk data. But since 3ae5fa0768 (pack-bitmap: remove bitmap_git global variable, 2018-06-07), the caller is responsible for the lifetime of the bitmap_index struct, and we return it from prepare_bitmap_git() and prepare_bitmap_walk(), both of which load the on-disk data (or return NULL). So outside of these functions, it's not possible to have a bitmap_index for which the loaded flag is not true. Nor is it possible to accidentally pass an already-loaded bitmap_index to the loading function (which is static-local to the file). We can drop this unnecessary and confusing flag. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Sep 1, 2018 at 03:50 UTC 199c86be1623ab5053b4ed0ce6ed2ae974e3e859
1 file changed +3 -6
pack-bitmap.c
+3 -6
@@ -91,8 +91,6 @@ struct bitmap_index {
91
92 /* Version of the bitmap index */
93 unsigned int version;
94 -
95 - unsigned loaded : 1;
94 };
95
96 static struct ewah_bitmap *lookup_stored_bitmap(struct stored_bitmap *st)
@@ -306,7 +304,7 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
304
305 static int load_pack_bitmap(struct bitmap_index *bitmap_git)
306 {
309 - assert(bitmap_git->map && !bitmap_git->loaded);
307 + assert(bitmap_git->map);
308
309 bitmap_git->bitmaps = kh_init_sha1();
310 bitmap_git->ext_index.positions = kh_init_sha1_pos();
@@ -321,7 +319,6 @@ static int load_pack_bitmap(struct bitmap_index *bitmap_git)
319 if (load_bitmap_entries_v1(bitmap_git) < 0)
320 goto failed;
321
324 - bitmap_git->loaded = 1;
322 return 0;
323
324 failed:
@@ -336,7 +333,7 @@ static int open_pack_bitmap(struct bitmap_index *bitmap_git)
333 struct packed_git *p;
334 int ret = -1;
335
339 - assert(!bitmap_git->map && !bitmap_git->loaded);
336 + assert(!bitmap_git->map);
337
338 for (p = get_packed_git(the_repository); p; p = p->next) {
339 if (open_pack_bitmap_1(bitmap_git, p) == 0)
@@ -738,7 +735,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs)
735 * from disk. this is the point of no return; after this the rev_list
736 * becomes invalidated and we must perform the revwalk through bitmaps
737 */
741 - if (!bitmap_git->loaded && load_pack_bitmap(bitmap_git) < 0)
738 + if (load_pack_bitmap(bitmap_git) < 0)
739 goto cleanup;
740
741 object_array_clear(&revs->pending);