diff options
author | Jeff King <peff@peff.net> | 2019-06-20 09:41:03 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-06-20 18:54:58 +0200 |
commit | 3df28caefb2193fb7bbc87a427a620d96d508c8d (patch) | |
tree | bcc54fc93d166a61c7a7289565d861173a85aaf0 /pack-bitmap.c | |
parent | pack-bitmap-write: convert some helpers to use object_id (diff) | |
download | git-3df28caefb2193fb7bbc87a427a620d96d508c8d.tar.xz git-3df28caefb2193fb7bbc87a427a620d96d508c8d.zip |
pack-objects: convert packlist_find() to use object_id
We take a raw hash pointer, but most of our callers have a "struct
object_id" already. Let's switch to taking the full struct, which will
let us continue removing uses of raw sha1 buffers.
There are two callers that do need special attention:
- in rebuild_existing_bitmaps(), we need to switch to
nth_packed_object_oid(). This incurs an extra hash copy over
pointing straight to the mmap'd sha1, but it shouldn't be measurable
compared to the rest of the operation.
- in can_reuse_delta() we already spent the effort to copy the sha1
into a "struct object_id", but now we just have to do so a little
earlier in the function (we can't easily convert that function's
callers because they may be pointing at mmap'd REF_DELTA blocks).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pack-bitmap.c')
-rw-r--r-- | pack-bitmap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/pack-bitmap.c b/pack-bitmap.c index 6069b2fe55..ff1f07e249 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -1057,13 +1057,13 @@ int rebuild_existing_bitmaps(struct bitmap_index *bitmap_git, reposition = xcalloc(num_objects, sizeof(uint32_t)); for (i = 0; i < num_objects; ++i) { - const unsigned char *sha1; + struct object_id oid; struct revindex_entry *entry; struct object_entry *oe; entry = &bitmap_git->pack->revindex[i]; - sha1 = nth_packed_object_sha1(bitmap_git->pack, entry->nr); - oe = packlist_find(mapping, sha1, NULL); + nth_packed_object_oid(&oid, bitmap_git->pack, entry->nr); + oe = packlist_find(mapping, &oid, NULL); if (oe) reposition[i] = oe_in_pack_pos(mapping, oe) + 1; |