]> git.ipfire.org Git - thirdparty/git.git/commitdiff
midx: inline nth_midxed_pack_entry()
authorRené Scharfe <l.s.r@web.de>
Sat, 11 Sep 2021 20:39:31 +0000 (22:39 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 12 Sep 2021 23:14:32 +0000 (16:14 -0700)
fill_midx_entry() finds the position of an object ID and passes it to
nth_midxed_pack_entry(), which uses the position to look up the object
ID for its own purposes.  Inline the latter into the former to avoid
that lookup.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx.c

diff --git a/midx.c b/midx.c
index 321c6fdd2f184ad8842be703a072413699a74a9d..8cb063023cc9764c6e4d3a566a435618d694a706 100644 (file)
--- a/midx.c
+++ b/midx.c
@@ -276,14 +276,18 @@ uint32_t nth_midxed_pack_int_id(struct multi_pack_index *m, uint32_t pos)
                        (off_t)pos * MIDX_CHUNK_OFFSET_WIDTH);
 }
 
-static int nth_midxed_pack_entry(struct repository *r,
-                                struct multi_pack_index *m,
-                                struct pack_entry *e,
-                                uint32_t pos)
+int fill_midx_entry(struct repository * r,
+                   const struct object_id *oid,
+                   struct pack_entry *e,
+                   struct multi_pack_index *m)
 {
+       uint32_t pos;
        uint32_t pack_int_id;
        struct packed_git *p;
 
+       if (!bsearch_midx(oid, m, &pos))
+               return 0;
+
        if (pos >= m->num_objects)
                return 0;
 
@@ -305,10 +309,8 @@ static int nth_midxed_pack_entry(struct repository *r,
 
        if (p->num_bad_objects) {
                uint32_t i;
-               struct object_id oid;
-               nth_midxed_object_oid(&oid, m, pos);
                for (i = 0; i < p->num_bad_objects; i++)
-                       if (hasheq(oid.hash,
+                       if (hasheq(oid->hash,
                                   p->bad_object_sha1 + the_hash_algo->rawsz * i))
                                return 0;
        }
@@ -319,19 +321,6 @@ static int nth_midxed_pack_entry(struct repository *r,
        return 1;
 }
 
-int fill_midx_entry(struct repository * r,
-                   const struct object_id *oid,
-                   struct pack_entry *e,
-                   struct multi_pack_index *m)
-{
-       uint32_t pos;
-
-       if (!bsearch_midx(oid, m, &pos))
-               return 0;
-
-       return nth_midxed_pack_entry(r, m, e, pos);
-}
-
 /* Match "foo.idx" against either "foo.pack" _or_ "foo.idx". */
 static int cmp_idx_or_pack_name(const char *idx_or_pack_name,
                                const char *idx_name)