git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] format-patch: allow --rfc to optionally take a value, like --rfc=WIP

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 21, 2024, 18:58 UTC
Message-ID
<xmqqle561r1f.fsf@gitster.g>
In-Reply-To
<440ee2b7-2ed8-4c8b-96e8-623ef45efe42@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 6 quoted lines
>> +	struct strbuf rfc = STRBUF_INIT;
>
> Looking at this again, do we really need an strbuf here? I think we
> could we use "const char *" instead as we always store a static string
> in it which would avoid a memory leak from not calling
> strbuf_release().
Thanks for spotting the leak ;-)

And indeed, unlike sprefix, we do not need it to be an editable strbuf.

Should be sufficient to squash in something like this.
 builtin/log.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
diff --git c/builtin/log.c w/builtin/log.c
index 0e9c84e51d..5c1c6f9b15 100644
--- c/builtin/log.c
+++ w/builtin/log.c
@@ -1497,12 +1497,11 @@ static int subject_prefix_callback(const struct option *opt, const char *arg,
 static int rfc_callback(const struct option *opt, const char *arg,
 			int unset)
 {
-	struct strbuf *rfc;
+	const char **rfc = opt->value;
 
-	rfc = opt->value;
-	strbuf_reset(rfc);
+	*rfc = opt->value;
 	if (!unset)
-		strbuf_addstr(rfc, arg ? arg : "RFC");
+		*rfc = arg ? arg : "RFC";
 	return 0;
 }
 
@@ -1919,7 +1918,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 	struct strbuf rdiff2 = STRBUF_INIT;
 	struct strbuf rdiff_title = STRBUF_INIT;
 	struct strbuf sprefix = STRBUF_INIT;
-	struct strbuf rfc = STRBUF_INIT;
+	const char *rfc = NULL;
 	int creation_factor = -1;
 
 	const struct option builtin_format_patch_options[] = {
@@ -2064,8 +2063,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 	if (cover_from_description_arg)
 		cover_from_description_mode = parse_cover_from_description(cover_from_description_arg);
 
-	if (rfc.len)
-		strbuf_insertf(&sprefix, 0, "%s ", rfc.buf);
+	if (rfc)
+		strbuf_insertf(&sprefix, 0, "%s ", rfc);
 
 	if (reroll_count) {
 		strbuf_addf(&sprefix, " v%s", reroll_count);
Previous: Phillip WoodNext: Junio C Hamano
Message 10 of 24 in “format-patch: allow --rfc to optionally take a value, like --rfc=WIP”
  1. format-patch: allow --rfc to optionally take a value, like --rfc=WIPJunio C Hamano, Apr 18, 2024
  2. Dragan SimicApr 19, 2024
  3. Phillip WoodApr 19, 2024
  4. Junio C HamanoApr 19, 2024
  5. Dragan SimicApr 21, 2024
  6. Jeff KingApr 19, 2024
  7. Junio C HamanoApr 19, 2024
  8. format-patch: allow --rfc to optionally take a value, like --rfc=WIPJunio C Hamano, Apr 19, 2024
  9. Phillip WoodApr 21, 2024
  10. Junio C HamanoApr 21, 2024
  11. 0/2 format-patch --rfc=WIPJunio C Hamano, Apr 21, 2024
  12. 2/2 format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)]Junio C Hamano, Apr 21, 2024
  13. Dragan SimicApr 21, 2024
  14. Phillip WoodApr 24, 2024
  15. Dragan SimicApr 24, 2024
  16. 1/2 format-patch: allow --rfc to optionally take a value, like --rfc=WIPJunio C Hamano, Apr 21, 2024
  17. 0/2 format-patch --rfc=WIPJunio C Hamano, Apr 23, 2024
  18. 1/2 format-patch: allow --rfc to optionally take a value, like --rfc=WIPJunio C Hamano, Apr 23, 2024
  19. Phillip WoodApr 24, 2024
  20. 2/2 format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)]Junio C Hamano, Apr 23, 2024
  21. Phillip WoodApr 24, 2024
  22. Junio C HamanoApr 24, 2024
  23. Dragan SimicApr 24, 2024
  24. Dragan SimicApr 24, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.