]> git.ipfire.org Git - thirdparty/git.git/commitdiff
midx: drop redundant `struct repository` parameter
authorPatrick Steinhardt <ps@pks.im>
Mon, 11 Aug 2025 13:46:46 +0000 (15:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Aug 2025 16:22:22 +0000 (09:22 -0700)
There are a couple of functions that take both a `struct repository` and
a `struct multi_pack_index`. This provides redundant information though
without much benefit given that the multi-pack index already has a
pointer to its owning repository.

Drop the `struct repository` parameter from such functions. While at it,
reorder the list of parameters of `fill_midx_entry()` so that the MIDX
comes first to better align with our coding guidelines.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c
midx-write.c
midx.c
midx.h
pack-bitmap.c
packfile.c
t/helper/test-read-midx.c

index 3dd84495b869e0c676f110d9e915e1d282cacf0a..b9fd685b8fcc8ff5b85b2c45e082a797b5b30f77 100644 (file)
@@ -1733,7 +1733,7 @@ static int want_object_in_pack_mtime(const struct object_id *oid,
                struct multi_pack_index *m = get_multi_pack_index(source);
                struct pack_entry e;
 
-               if (m && fill_midx_entry(the_repository, oid, &e, m)) {
+               if (m && fill_midx_entry(m, oid, &e)) {
                        want = want_object_in_pack_one(e.p, oid, exclude, found_pack, found_offset, found_mtime);
                        if (want != -1)
                                return want;
index d38caceadb4fa46596a66e60d543b4f652f5024c..b858be475fc3faa3433337998bd36adeb0215aef 100644 (file)
@@ -942,8 +942,7 @@ static int fill_packs_from_midx(struct write_midx_context *ctx,
                         */
                        if (flags & MIDX_WRITE_REV_INDEX ||
                            preferred_pack_name) {
-                               if (prepare_midx_pack(ctx->repo, m,
-                                                     m->num_packs_in_base + i)) {
+                               if (prepare_midx_pack(m, m->num_packs_in_base + i)) {
                                        error(_("could not load pack"));
                                        return 1;
                                }
@@ -1566,7 +1565,7 @@ int expire_midx_packs(struct repository *r, const char *object_dir, unsigned fla
                if (count[i])
                        continue;
 
-               if (prepare_midx_pack(r, m, i))
+               if (prepare_midx_pack(m, i))
                        continue;
 
                if (m->packs[i]->pack_keep || m->packs[i]->is_cruft)
@@ -1612,13 +1611,12 @@ static int compare_by_mtime(const void *a_, const void *b_)
        return 0;
 }
 
-static int want_included_pack(struct repository *r,
-                             struct multi_pack_index *m,
+static int want_included_pack(struct multi_pack_index *m,
                              int pack_kept_objects,
                              uint32_t pack_int_id)
 {
        struct packed_git *p;
-       if (prepare_midx_pack(r, m, pack_int_id))
+       if (prepare_midx_pack(m, pack_int_id))
                return 0;
        p = m->packs[pack_int_id];
        if (!pack_kept_objects && p->pack_keep)
@@ -1640,7 +1638,7 @@ static void fill_included_packs_all(struct repository *r,
        repo_config_get_bool(r, "repack.packkeptobjects", &pack_kept_objects);
 
        for (i = 0; i < m->num_packs; i++) {
-               if (!want_included_pack(r, m, pack_kept_objects, i))
+               if (!want_included_pack(m, pack_kept_objects, i))
                        continue;
 
                include_pack[i] = 1;
@@ -1664,7 +1662,7 @@ static void fill_included_packs_batch(struct repository *r,
        for (i = 0; i < m->num_packs; i++) {
                pack_info[i].pack_int_id = i;
 
-               if (prepare_midx_pack(r, m, i))
+               if (prepare_midx_pack(m, i))
                        continue;
 
                pack_info[i].mtime = m->packs[i]->mtime;
@@ -1683,7 +1681,7 @@ static void fill_included_packs_batch(struct repository *r,
                struct packed_git *p = m->packs[pack_int_id];
                uint64_t expected_size;
 
-               if (!want_included_pack(r, m, pack_kept_objects, pack_int_id))
+               if (!want_included_pack(m, pack_kept_objects, pack_int_id))
                        continue;
 
                /*
diff --git a/midx.c b/midx.c
index b9ca0915a67f10f25728a3335bf3e6a52841f447..8459dda8c9e8109aae30d31f1edfb0eaa81ffc17 100644 (file)
--- a/midx.c
+++ b/midx.c
@@ -450,9 +450,10 @@ static uint32_t midx_for_pack(struct multi_pack_index **_m,
        return pack_int_id - m->num_packs_in_base;
 }
 
-int prepare_midx_pack(struct repository *r, struct multi_pack_index *m,
+int prepare_midx_pack(struct multi_pack_index *m,
                      uint32_t pack_int_id)
 {
+       struct repository *r = m->repo;
        struct strbuf pack_name = STRBUF_INIT;
        struct strbuf key = STRBUF_INIT;
        struct packed_git *p;
@@ -507,7 +508,7 @@ struct packed_git *nth_midxed_pack(struct multi_pack_index *m,
 
 #define MIDX_CHUNK_BITMAPPED_PACKS_WIDTH (2 * sizeof(uint32_t))
 
-int nth_bitmapped_pack(struct repository *r, struct multi_pack_index *m,
+int nth_bitmapped_pack(struct multi_pack_index *m,
                       struct bitmapped_pack *bp, uint32_t pack_int_id)
 {
        uint32_t local_pack_int_id = midx_for_pack(&m, pack_int_id);
@@ -515,7 +516,7 @@ int nth_bitmapped_pack(struct repository *r, struct multi_pack_index *m,
        if (!m->chunk_bitmapped_packs)
                return error(_("MIDX does not contain the BTMP chunk"));
 
-       if (prepare_midx_pack(r, m, pack_int_id))
+       if (prepare_midx_pack(m, pack_int_id))
                return error(_("could not load bitmapped pack %"PRIu32), pack_int_id);
 
        bp->p = m->packs[local_pack_int_id];
@@ -600,10 +601,9 @@ uint32_t nth_midxed_pack_int_id(struct multi_pack_index *m, uint32_t pos)
                                               (off_t)pos * MIDX_CHUNK_OFFSET_WIDTH);
 }
 
-int fill_midx_entry(struct repository *r,
+int fill_midx_entry(struct multi_pack_index *m,
                    const struct object_id *oid,
-                   struct pack_entry *e,
-                   struct multi_pack_index *m)
+                   struct pack_entry *e)
 {
        uint32_t pos;
        uint32_t pack_int_id;
@@ -615,7 +615,7 @@ int fill_midx_entry(struct repository *r,
        midx_for_object(&m, pos);
        pack_int_id = nth_midxed_pack_int_id(m, pos);
 
-       if (prepare_midx_pack(r, m, pack_int_id))
+       if (prepare_midx_pack(m, pack_int_id))
                return 0;
        p = m->packs[pack_int_id - m->num_packs_in_base];
 
@@ -912,7 +912,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag
                                                  _("Looking for referenced packfiles"),
                                                  m->num_packs + m->num_packs_in_base);
        for (i = 0; i < m->num_packs + m->num_packs_in_base; i++) {
-               if (prepare_midx_pack(r, m, i))
+               if (prepare_midx_pack(m, i))
                        midx_report("failed to load pack in position %d", i);
 
                display_progress(progress, i + 1);
@@ -989,7 +989,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag
 
                nth_midxed_object_oid(&oid, m, pairs[i].pos);
 
-               if (!fill_midx_entry(r, &oid, &e, m)) {
+               if (!fill_midx_entry(m, &oid, &e)) {
                        midx_report(_("failed to load pack entry for oid[%d] = %s"),
                                    pairs[i].pos, oid_to_hex(&oid));
                        continue;
diff --git a/midx.h b/midx.h
index 28c426a8232997d12fec3f5bc91cd7220b90c5ad..f7e07083e1f9de3ddb6ed6ea827fd51237bac9f8 100644 (file)
--- a/midx.h
+++ b/midx.h
@@ -103,10 +103,10 @@ void get_split_midx_filename_ext(const struct git_hash_algo *hash_algo,
 struct multi_pack_index *load_multi_pack_index(struct repository *r,
                                               const char *object_dir,
                                               int local);
-int prepare_midx_pack(struct repository *r, struct multi_pack_index *m, uint32_t pack_int_id);
+int prepare_midx_pack(struct multi_pack_index *m, uint32_t pack_int_id);
 struct packed_git *nth_midxed_pack(struct multi_pack_index *m,
                                   uint32_t pack_int_id);
-int nth_bitmapped_pack(struct repository *r, struct multi_pack_index *m,
+int nth_bitmapped_pack(struct multi_pack_index *m,
                       struct bitmapped_pack *bp, uint32_t pack_int_id);
 int bsearch_one_midx(const struct object_id *oid, struct multi_pack_index *m,
                     uint32_t *result);
@@ -118,7 +118,7 @@ uint32_t nth_midxed_pack_int_id(struct multi_pack_index *m, uint32_t pos);
 struct object_id *nth_midxed_object_oid(struct object_id *oid,
                                        struct multi_pack_index *m,
                                        uint32_t n);
-int fill_midx_entry(struct repository *r, const struct object_id *oid, struct pack_entry *e, struct multi_pack_index *m);
+int fill_midx_entry(struct multi_pack_index *m, const struct object_id *oid, struct pack_entry *e);
 int midx_contains_pack(struct multi_pack_index *m,
                       const char *idx_or_pack_name);
 int midx_preferred_pack(struct multi_pack_index *m, uint32_t *pack_int_id);
index d14421ee20441487f1c9b6a43df746edea15b894..fb0b11ca073856ed5b70a6e66a30085d34465f56 100644 (file)
@@ -493,7 +493,7 @@ static int open_midx_bitmap_1(struct bitmap_index *bitmap_git,
        }
 
        for (i = 0; i < bitmap_git->midx->num_packs + bitmap_git->midx->num_packs_in_base; i++) {
-               if (prepare_midx_pack(bitmap_repo(bitmap_git), bitmap_git->midx, i)) {
+               if (prepare_midx_pack(bitmap_git->midx, i)) {
                        warning(_("could not open pack %s"),
                                bitmap_git->midx->pack_names[i]);
                        goto cleanup;
@@ -2466,7 +2466,7 @@ void reuse_partial_packfile_from_bitmap(struct bitmap_index *bitmap_git,
                struct multi_pack_index *m = bitmap_git->midx;
                for (i = 0; i < m->num_packs + m->num_packs_in_base; i++) {
                        struct bitmapped_pack pack;
-                       if (nth_bitmapped_pack(r, bitmap_git->midx, &pack, i) < 0) {
+                       if (nth_bitmapped_pack(bitmap_git->midx, &pack, i) < 0) {
                                warning(_("unable to load pack: '%s', disabling pack-reuse"),
                                        bitmap_git->midx->pack_names[i]);
                                free(packs);
index a38544b87bf2f1168e3fcfbb1c8109df1779b5f0..acb680966dacf913b172873c6f9dfbd1a8f4157e 100644 (file)
@@ -1091,7 +1091,7 @@ struct packed_git *get_all_packs(struct repository *r)
                if (!m)
                        continue;
                for (uint32_t i = 0; i < m->num_packs + m->num_packs_in_base; i++)
-                       prepare_midx_pack(r, m, i);
+                       prepare_midx_pack(m, i);
        }
 
        return r->objects->packed_git;
@@ -2077,7 +2077,7 @@ int find_pack_entry(struct repository *r, const struct object_id *oid, struct pa
        prepare_packed_git(r);
 
        for (struct odb_source *source = r->objects->sources; source; source = source->next)
-               if (source->midx && fill_midx_entry(r, oid, e, source->midx))
+               if (source->midx && fill_midx_entry(source->midx, oid, e))
                        return 1;
 
        if (!r->objects->packed_git)
index da2aa036b57ef6f0c96b1e15d711fac125c2d687..e430aa247c6f342117e93ff9ea878e55518c07fe 100644 (file)
@@ -65,7 +65,7 @@ static int read_midx_file(const char *object_dir, const char *checksum,
                for (i = 0; i < m->num_objects; i++) {
                        nth_midxed_object_oid(&oid, m,
                                              i + m->num_objects_in_base);
-                       fill_midx_entry(the_repository, &oid, &e, m);
+                       fill_midx_entry(m, &oid, &e);
 
                        printf("%s %"PRIu64"\t%s\n",
                               oid_to_hex(&oid), e.offset, e.p->pack_name);
@@ -126,7 +126,7 @@ static int read_midx_bitmapped_packs(const char *object_dir)
                return 1;
 
        for (i = 0; i < midx->num_packs + midx->num_packs_in_base; i++) {
-               if (nth_bitmapped_pack(the_repository, midx, &pack, i) < 0) {
+               if (nth_bitmapped_pack(midx, &pack, i) < 0) {
                        close_midx(midx);
                        return 1;
                }