Re: [PATCH 13/21] fast-import: simplify allocation in start_packfile

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 13/21] fast-import: simplify allocation in start_packfile

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:08:19

Jeff King [off-list ref] writes:
This function allocate a packed_git flex-array, and adds a
s/allocate/&s/, right?
quoted hunk
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 <redacted>
---
 fast-import.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/fast-import.c b/fast-import.c
index 3053bb8..9fc7093 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -865,15 +865,12 @@ static void start_packfile(void)
 {
 	static char tmp_file[PATH_MAX];
 	struct packed_git *p;
-	int namelen;
 	struct pack_header hdr;
 	int pack_fd;
 
 	pack_fd = odb_mkstemp(tmp_file, sizeof(tmp_file),
 			      "pack/tmp_pack_XXXXXX");
-	namelen = strlen(tmp_file) + 2;
-	p = xcalloc(1, sizeof(*p) + namelen);
-	xsnprintf(p->pack_name, namelen, "%s", tmp_file);
+	FLEX_ALLOC_STR(p, pack_name, tmp_file);
 	p->pack_fd = pack_fd;
 	p->do_not_close = 1;
 	pack_file = sha1fd(pack_fd, p->pack_name);

Re: [PATCH 13/21] fast-import: simplify allocation in start_packfile

From: Jeff King <hidden>
Date: 2016-06-15 23:08:19

On Fri, Feb 19, 2016 at 09:48:54AM -0800, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
This function allocate a packed_git flex-array, and adds a
s/allocate/&s/, right?
Yes, thanks.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help