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

[PATCH] gc: simplify maintenance_task_pack_refs()

From
René Scharfe <l.s.r@web.de>
Date
Oct 4, 2022, 16:17 UTC
Message-ID
<ab33f72e-d552-7bd7-bf04-3c476d32b5b6@web.de>

Pass a constant string array directly to run_command_v_opt() instead of copying it into a strvec first. This shortens the code and avoids heap allocations.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
This patch is a bit silly because it doesn't actually fix anything, but
I can't resist pointing out the possible code size reduction.  And if
opts becomes used eventually it's probably easier to use the args member
of struct child_process instead of supplying our own strvec.
 builtin/gc.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/builtin/gc.c b/builtin/gc.c
index 2753bd15a5..ceff31ea00 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -167,16 +167,9 @@ static void gc_config(void)
 struct maintenance_run_opts;
 static int maintenance_task_pack_refs(MAYBE_UNUSED struct maintenance_run_opts *opts)
 {
-	struct strvec pack_refs_cmd = STRVEC_INIT;
-	int ret;
+	const char *argv[] = { "pack-refs", "--all", "--prune", NULL };

-	strvec_pushl(&pack_refs_cmd, "pack-refs", "--all", "--prune", NULL);
-
-	ret = run_command_v_opt(pack_refs_cmd.v, RUN_GIT_CMD);
-
-	strvec_clear(&pack_refs_cmd);
-
-	return ret;
+	return run_command_v_opt(argv, RUN_GIT_CMD);
 }

 static int too_many_loose_objects(void)
--
2.37.3
Message 1 of 1 in “gc: simplify maintenance_task_pack_refs()”
  1. gc: simplify maintenance_task_pack_refs()René Scharfe, Oct 4, 2022

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.