threads / patch / 58563

patchgc: simplify maintenance_task_pack_refs()

Subject: [PATCH] gc: simplify maintenance_task_pack_refs()

## tl;dr

One message between Oct 4, 2022 and Oct 4, 2022. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

René Scharfe· Oct 4, 2022, 16:17 UTC · lore

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(-)
Show changes to builtin/gc.c +2 −10
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

← back to recent threads