delta-islands.c: remove the_repository references

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed Nov 10, 2018 at 06:49 UTC 385cb64ff3598451ac3019443b364f49b8395e82
3 files changed +22 -15
builtin/pack-objects.c
+2 -2
@@ -2628,7 +2628,7 @@ static void prepare_pack(int window, int depth)
2628 unsigned n;
2629
2630 if (use_delta_islands)
2631 - resolve_tree_islands(progress, &to_pack);
2631 + resolve_tree_islands(the_repository, progress, &to_pack);
2632
2633 get_object_details();
2634
@@ -3143,7 +3143,7 @@ static void get_object_list(int ac, const char **av)
3143 return;
3144
3145 if (use_delta_islands)
3146 - load_delta_islands();
3146 + load_delta_islands(the_repository);
3147
3148 if (prepare_revision_walk(&revs))
3149 die(_("revision walk setup failed"));
delta-islands.c
+14 -10
@@ -190,13 +190,15 @@ static void set_island_marks(struct object *obj, struct island_bitmap *marks)
190 island_bitmap_or(b, marks);
191 }
192
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)
196 {
197 uint32_t i;
198
199 for (i = 0; i < rl->oids.nr; ++i) {
200 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]);
202
203 if (!obj)
204 continue;
@@ -211,7 +213,7 @@ static void mark_remote_island_1(struct remote_island *rl, int is_core_island)
213 while (obj && obj->type == OBJ_TAG) {
214 obj = ((struct tag *)obj)->tagged;
215 if (obj) {
214 - parse_object(the_repository, &obj->oid);
216 + parse_object(r, &obj->oid);
217 marks = create_or_get_island_marks(obj);
218 island_bitmap_set(marks, island_counter);
219 }
@@ -237,7 +239,9 @@ static int tree_depth_compare(const void *a, const void *b)
239 return todo_a->depth - todo_b->depth;
240 }
241
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)
245 {
246 struct progress *progress_state = NULL;
247 struct tree_islands_todo *todo;
@@ -281,7 +285,7 @@ void resolve_tree_islands(int progress, struct packing_data *to_pack)
285
286 root_marks = kh_value(island_marks, pos);
287
284 - tree = lookup_tree(the_repository, &ent->idx.oid);
288 + tree = lookup_tree(r, &ent->idx.oid);
289 if (!tree || parse_tree(tree) < 0)
290 die(_("bad tree object %s"), oid_to_hex(&ent->idx.oid));
291
@@ -292,7 +296,7 @@ void resolve_tree_islands(int progress, struct packing_data *to_pack)
296 if (S_ISGITLINK(entry.mode))
297 continue;
298
295 - obj = lookup_object(the_repository, entry.oid->hash);
299 + obj = lookup_object(r, entry.oid->hash);
300 if (!obj)
301 continue;
302
@@ -415,7 +419,7 @@ static struct remote_island *get_core_island(void)
419 return NULL;
420 }
421
418 -static void deduplicate_islands(void)
422 +static void deduplicate_islands(struct repository *r)
423 {
424 struct remote_island *island, *core = NULL, **list;
425 unsigned int island_count, dst, src, ref, i = 0;
@@ -444,20 +448,20 @@ static void deduplicate_islands(void)
448 core = get_core_island();
449
450 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);
452 }
453
454 free(list);
455 }
456
453 -void load_delta_islands(void)
457 +void load_delta_islands(struct repository *r)
458 {
459 island_marks = kh_init_sha1();
460 remote_islands = kh_init_str();
461
462 git_config(island_config_callback, NULL);
463 for_each_ref(find_island_for_ref, NULL);
460 - deduplicate_islands();
464 + deduplicate_islands(r);
465
466 fprintf(stderr, _("Marked %d islands, done.\n"), island_counter);
467 }
delta-islands.h
+6 -3
@@ -1,14 +1,17 @@
1 #ifndef DELTA_ISLANDS_H
2 #define DELTA_ISLANDS_H
3
4 +struct commit;
5 struct object_id;
6 struct packing_data;
6 -struct commit;
7 +struct repository;
8
9 int island_delta_cmp(const struct object_id *a, const struct object_id *b);
10 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);
15 void propagate_island_marks(struct commit *commit);
16 int compute_pack_layers(struct packing_data *to_pack);
17