pack-write: use hashwrite_be32() instead of double-buffering array

hashwrite() already buffers writes, so pass the fanout table entries
individually via hashwrite_be32(), which also does the endianess
conversion for us.  This avoids a memory copy, shortens the code and
reduces the number of magic numbers.

Signed-off-by: René Scharfe <>
Signed-off-by: Junio C Hamano <>
This commit is contained in:
René Scharfe 2020-11-01 09:52:12 +01:00 committed by Junio C Hamano
parent 898f80736c
commit 06d43fad18
1 changed files with 1 additions and 3 deletions

View File

@ -48,7 +48,6 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
struct hashfile *f;
struct pack_idx_entry **sorted_by_sha, **list, **last;
off_t last_obj_offset = 0;
uint32_t array[256];
int i, fd;
uint32_t index_version;
@ -106,10 +105,9 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
array[i] = htonl(next - sorted_by_sha);
hashwrite_be32(f, next - sorted_by_sha);
list = next;
hashwrite(f, array, 256 * 4);
* Write the actual SHA1 entries..