463
return 0;
464
}
465
466
-static int load_reverse_index(struct bitmap_index *bitmap_git)
466
+static int load_reverse_index(struct repository *r, struct bitmap_index *bitmap_git)
467
{
468
if (bitmap_is_midx(bitmap_git)) {
469
uint32_t i;
477
* since we will need to make use of them in pack-objects.
478
*/
479
for (i = 0; i < bitmap_git->midx->num_packs; i++) {
480
- ret = load_pack_revindex(bitmap_git->midx->packs[i]);
480
+ ret = load_pack_revindex(r, bitmap_git->midx->packs[i]);
481
if (ret)
482
return ret;
483
}
484
return 0;
485
}
486
- return load_pack_revindex(bitmap_git->pack);
486
+ return load_pack_revindex(r, bitmap_git->pack);
487
}
488
489
-static int load_bitmap(struct bitmap_index *bitmap_git)
489
+static int load_bitmap(struct repository *r, struct bitmap_index *bitmap_git)
490
{
491
assert(bitmap_git->map);
492
493
bitmap_git->bitmaps = kh_init_oid_map();
494
bitmap_git->ext_index.positions = kh_init_oid_pos();
495
496
- if (load_reverse_index(bitmap_git))
496
+ if (load_reverse_index(r, bitmap_git))
497
goto failed;
498
499
if (!(bitmap_git->commits = read_bitmap_1(bitmap_git)) ||
580
{
581
struct bitmap_index *bitmap_git = xcalloc(1, sizeof(*bitmap_git));
582
583
- if (!open_bitmap(r, bitmap_git) && !load_bitmap(bitmap_git))
583
+ if (!open_bitmap(r, bitmap_git) && !load_bitmap(r, bitmap_git))
584
return bitmap_git;
585
586
free_bitmap_index(bitmap_git);
589
590
struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index *midx)
591
{
592
+ struct repository *r = the_repository;
593
struct bitmap_index *bitmap_git = xcalloc(1, sizeof(*bitmap_git));
594
594
- if (!open_midx_bitmap_1(bitmap_git, midx) && !load_bitmap(bitmap_git))
595
+ if (!open_midx_bitmap_1(bitmap_git, midx) && !load_bitmap(r, bitmap_git))
596
return bitmap_git;
597
598
free_bitmap_index(bitmap_git);
1593
* from disk. this is the point of no return; after this the rev_list
1594
* becomes invalidated and we must perform the revwalk through bitmaps
1595
*/
1595
- if (load_bitmap(bitmap_git) < 0)
1596
+ if (load_bitmap(revs->repo, bitmap_git) < 0)
1597
goto cleanup;
1598
1599
object_array_clear(&revs->pending);
1743
uint32_t *entries,
1744
struct bitmap **reuse_out)
1745
{
1746
+ struct repository *r = the_repository;
1747
struct packed_git *pack;
1748
struct bitmap *result = bitmap_git->result;
1749
struct bitmap *reuse;
1754
1755
assert(result);
1756
1755
- load_reverse_index(bitmap_git);
1757
+ load_reverse_index(r, bitmap_git);
1758
1759
if (bitmap_is_midx(bitmap_git))
1760
pack = bitmap_git->midx->packs[midx_preferred_pack(bitmap_git)];
2134
uint32_t *create_bitmap_mapping(struct bitmap_index *bitmap_git,
2135
struct packing_data *mapping)
2136
{
2137
+ struct repository *r = the_repository;
2138
uint32_t i, num_objects;
2139
uint32_t *reposition;
2140
2141
if (!bitmap_is_midx(bitmap_git))
2139
- load_reverse_index(bitmap_git);
2142
+ load_reverse_index(r, bitmap_git);
2143
else if (load_midx_revindex(bitmap_git->midx) < 0)
2144
BUG("rebuild_existing_bitmaps: missing required rev-cache "
2145
"extension");