git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] gc: simplify maintenance_task_pack_refs()
@ 2022-10-04 16:17 René Scharfe
  0 siblings, 0 replies; only message in thread
From: René Scharfe @ 2022-10-04 16:17 UTC (permalink / raw)
  To: Git List, Derrick Stolee, Ævar Arnfjörð Bjarmason
  Cc: Junio C Hamano

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

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-10-04 16:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-04 16:17 [PATCH] gc: simplify maintenance_task_pack_refs() René Scharfe

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).