Skip to content

Commit 385cb64

Browse files
pcloudsgitster
authored andcommitted
delta-islands.c: remove the_repository references
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent c207e9e commit 385cb64

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

builtin/pack-objects.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2628,7 +2628,7 @@ static void prepare_pack(int window, int depth)
26282628
unsigned n;
26292629

26302630
if (use_delta_islands)
2631-
resolve_tree_islands(progress, &to_pack);
2631+
resolve_tree_islands(the_repository, progress, &to_pack);
26322632

26332633
get_object_details();
26342634

@@ -3143,7 +3143,7 @@ static void get_object_list(int ac, const char **av)
31433143
return;
31443144

31453145
if (use_delta_islands)
3146-
load_delta_islands();
3146+
load_delta_islands(the_repository);
31473147

31483148
if (prepare_revision_walk(&revs))
31493149
die(_("revision walk setup failed"));

delta-islands.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,15 @@ static void set_island_marks(struct object *obj, struct island_bitmap *marks)
190190
island_bitmap_or(b, marks);
191191
}
192192

193-
static void mark_remote_island_1(struct remote_island *rl, int is_core_island)
193+
static void mark_remote_island_1(struct repository *r,
194+
struct remote_island *rl,
195+
int is_core_island)
194196
{
195197
uint32_t i;
196198

197199
for (i = 0; i < rl->oids.nr; ++i) {
198200
struct island_bitmap *marks;
199-
struct object *obj = parse_object(the_repository, &rl->oids.oid[i]);
201+
struct object *obj = parse_object(r, &rl->oids.oid[i]);
200202

201203
if (!obj)
202204
continue;
@@ -211,7 +213,7 @@ static void mark_remote_island_1(struct remote_island *rl, int is_core_island)
211213
while (obj && obj->type == OBJ_TAG) {
212214
obj = ((struct tag *)obj)->tagged;
213215
if (obj) {
214-
parse_object(the_repository, &obj->oid);
216+
parse_object(r, &obj->oid);
215217
marks = create_or_get_island_marks(obj);
216218
island_bitmap_set(marks, island_counter);
217219
}
@@ -237,7 +239,9 @@ static int tree_depth_compare(const void *a, const void *b)
237239
return todo_a->depth - todo_b->depth;
238240
}
239241

240-
void resolve_tree_islands(int progress, struct packing_data *to_pack)
242+
void resolve_tree_islands(struct repository *r,
243+
int progress,
244+
struct packing_data *to_pack)
241245
{
242246
struct progress *progress_state = NULL;
243247
struct tree_islands_todo *todo;
@@ -281,7 +285,7 @@ void resolve_tree_islands(int progress, struct packing_data *to_pack)
281285

282286
root_marks = kh_value(island_marks, pos);
283287

284-
tree = lookup_tree(the_repository, &ent->idx.oid);
288+
tree = lookup_tree(r, &ent->idx.oid);
285289
if (!tree || parse_tree(tree) < 0)
286290
die(_("bad tree object %s"), oid_to_hex(&ent->idx.oid));
287291

@@ -292,7 +296,7 @@ void resolve_tree_islands(int progress, struct packing_data *to_pack)
292296
if (S_ISGITLINK(entry.mode))
293297
continue;
294298

295-
obj = lookup_object(the_repository, entry.oid->hash);
299+
obj = lookup_object(r, entry.oid->hash);
296300
if (!obj)
297301
continue;
298302

@@ -415,7 +419,7 @@ static struct remote_island *get_core_island(void)
415419
return NULL;
416420
}
417421

418-
static void deduplicate_islands(void)
422+
static void deduplicate_islands(struct repository *r)
419423
{
420424
struct remote_island *island, *core = NULL, **list;
421425
unsigned int island_count, dst, src, ref, i = 0;
@@ -444,20 +448,20 @@ static void deduplicate_islands(void)
444448
core = get_core_island();
445449

446450
for (i = 0; i < island_count; ++i) {
447-
mark_remote_island_1(list[i], core && list[i]->hash == core->hash);
451+
mark_remote_island_1(r, list[i], core && list[i]->hash == core->hash);
448452
}
449453

450454
free(list);
451455
}
452456

453-
void load_delta_islands(void)
457+
void load_delta_islands(struct repository *r)
454458
{
455459
island_marks = kh_init_sha1();
456460
remote_islands = kh_init_str();
457461

458462
git_config(island_config_callback, NULL);
459463
for_each_ref(find_island_for_ref, NULL);
460-
deduplicate_islands();
464+
deduplicate_islands(r);
461465

462466
fprintf(stderr, _("Marked %d islands, done.\n"), island_counter);
463467
}

delta-islands.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
#ifndef DELTA_ISLANDS_H
22
#define DELTA_ISLANDS_H
33

4+
struct commit;
45
struct object_id;
56
struct packing_data;
6-
struct commit;
7+
struct repository;
78

89
int island_delta_cmp(const struct object_id *a, const struct object_id *b);
910
int in_same_island(const struct object_id *, const struct object_id *);
10-
void resolve_tree_islands(int progress, struct packing_data *to_pack);
11-
void load_delta_islands(void);
11+
void resolve_tree_islands(struct repository *r,
12+
int progress,
13+
struct packing_data *to_pack);
14+
void load_delta_islands(struct repository *r);
1215
void propagate_island_marks(struct commit *commit);
1316
int compute_pack_layers(struct packing_data *to_pack);
1417

0 commit comments

Comments
 (0)