# [PATCH] gc: simplify maintenance_task_pack_refs()

1 messages from 2022-10-04 to 2022-10-04. Participants: René Scharfe.
Thread: https://gitlist.dev/t/58563

## René Scharfe, 2022-10-04 16:17

Subject: [PATCH] gc: simplify maintenance_task_pack_refs()
Message-ID: <ab33f72e-d552-7bd7-bf04-3c476d32b5b6@web.de>
URL: https://gitlist.dev/e/ab33f72e-d552-7bd7-bf04-3c476d32b5b6%40web.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

```
