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 <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
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 hashfile *f;
struct pack_idx_entry **sorted_by_sha, **list, **last; struct pack_idx_entry **sorted_by_sha, **list, **last;
off_t last_obj_offset = 0; off_t last_obj_offset = 0;
uint32_t array[256];
int i, fd; int i, fd;
uint32_t index_version; uint32_t index_version;


@ -106,10 +105,9 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
break; break;
next++; next++;
} }
array[i] = htonl(next - sorted_by_sha); hashwrite_be32(f, next - sorted_by_sha);
list = next; list = next;
} }
hashwrite(f, array, 256 * 4);


/* /*
* Write the actual SHA1 entries.. * Write the actual SHA1 entries..