From ad622a256f0dd0be44ca17f58b3f5b43cedb4320 Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Wed, 17 Jan 2018 14:08:23 -0500 Subject: packfile: use get_be64() for large offsets The pack-index version 2 format uses two 4-byte integers in network-byte order to represent one 8-byte value. The current implementation has several code clones for stitching these integers together. Use get_be64() to create an 8-byte integer from two 4-byte integers represented this way. Signed-off-by: Derrick Stolee Reviewed-by: Jeff King Signed-off-by: Junio C Hamano --- pack-revindex.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'pack-revindex.c') diff --git a/pack-revindex.c b/pack-revindex.c index 1b7ebd8d7e..ff5f62c033 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -134,10 +134,8 @@ static void create_pack_revindex(struct packed_git *p) if (!(off & 0x80000000)) { p->revindex[i].offset = off; } else { - p->revindex[i].offset = - ((uint64_t)ntohl(*off_64++)) << 32; - p->revindex[i].offset |= - ntohl(*off_64++); + p->revindex[i].offset = get_be64(off_64); + off_64 += 2; } p->revindex[i].nr = i; } -- cgit v1.2.3