fast-import: simplify allocation in start_packfile

This function allocate a packed_git flex-array, and adds a mysterious 2 bytes to the length of the pack_name field. One is for the trailing NUL, but the other has no purpose. This is probably cargo-culted from add_packed_git, which gets the ".idx" path and needed to allocate enough space to hold the matching ".pack" (though since 48bcc1c, we calculate the size there differently). This site, however, is using the raw path of a tempfile, and does not need the extra byte. We can just replace the allocation with FLEX_ALLOC_STR, which handles the allocation and the NUL for us. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Feb 22, 2016 at 17:44 UTC a78c188a32dd2ce02db2b966a70bffec52c98d20
1 file changed +1 -4
fast-import.c
+1 -4
@@ -865,15 +865,12 @@ static void start_packfile(void)
865 {
866 static char tmp_file[PATH_MAX];
867 struct packed_git *p;
868 - int namelen;
868 struct pack_header hdr;
869 int pack_fd;
870
871 pack_fd = odb_mkstemp(tmp_file, sizeof(tmp_file),
872 "pack/tmp_pack_XXXXXX");
874 - namelen = strlen(tmp_file) + 2;
875 - p = xcalloc(1, sizeof(*p) + namelen);
876 - xsnprintf(p->pack_name, namelen, "%s", tmp_file);
873 + FLEX_ALLOC_STR(p, pack_name, tmp_file);
874 p->pack_fd = pack_fd;
875 p->do_not_close = 1;
876 pack_file = sha1fd(pack_fd, p->pack_name);