All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Pablo Sabater <pabloosabaterr@gmail.com>
Cc: eric.peijian@gmail.com,  calvinwan@google.com,
	 chriscool@tuxfamily.org, git@vger.kernel.org,
	 jltobler@gmail.com,  jonathantanmy@google.com,
	karthik.188@gmail.com,  toon@iotcl.com,
	 chandrapratap3519@gmail.com
Subject: Re: [PATCH GSoC RFC v12 03/12] cat-file: add declaration of variable i inside its for loop
Date: Mon, 08 Jun 2026 07:52:28 -0700	[thread overview]
Message-ID: <xmqqzf15w0cz.fsf@gitster.g> (raw)
In-Reply-To: <20260608-ps-eric-work-rebase-v12-3-5338b766e658@gmail.com> (Pablo Sabater's message of "Mon, 8 Jun 2026 12:14:26 +0200")

Pablo Sabater <pabloosabaterr@gmail.com> writes:

> From: Eric Ju <eric.peijian@gmail.com>
> Subject: Re: [PATCH GSoC RFC v12 03/12] cat-file: add declaration of variable i inside its for loop

"add" sounds a bit strange, as the existing code wouldn't have
compiled if the variable were never declared.  What the patch did
was to move (not add) the declaration of a function scope variable
that is used to control for() loops.  Would any of these work?

Subject: [PATCH GSOC v12 03/12] cat-file: narrow scope of loop counter
Subject: [PATCH GSOC v12 03/12] cat-file: declare loop counter inside for()

> Some code used in this series declares variable i and only uses it
> in a for loop, not in any other logic outside the loop.
>
> Change the declaration of i to be inside the for loop for readability.
> While at it, we also change its type from "int" to "size_t" where the latter makes more sense.

Curious single line that is overly long?

> Helped-by: Christian Couder <chriscool@tuxfamily.org>
> Signed-off-by: Eric Ju <eric.peijian@gmail.com>
> Signed-off-by: Pablo Sabater <pabloosabaterr@gmail.com>
> ---
>  builtin/cat-file.c | 11 +++--------
>  fetch-pack.c       |  3 +--
>  2 files changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/builtin/cat-file.c b/builtin/cat-file.c
> index fa45f774d7..c060fd4800 100644
> --- a/builtin/cat-file.c
> +++ b/builtin/cat-file.c
> @@ -726,12 +726,10 @@ static void dispatch_calls(struct batch_options *opt,
>  		struct queued_cmd *cmd,
>  		int nr)
>  {
> -	int i;
> -
>  	if (!opt->buffer_output)
>  		die(_("flush is only for --buffer mode"));
>  
> -	for (i = 0; i < nr; i++)
> +	for (size_t i = 0; i < nr; i++)
>  		cmd[i].fn(opt, cmd[i].line, output, data);

The loop limit "nr" will not become as large as size_t because the
caller passes a platform natural "int" to the function.  Wouldn't a
stupid compiler give us warning on comparing unsigned size_t with
signed int here?

> @@ -739,9 +737,7 @@ static void dispatch_calls(struct batch_options *opt,
>  
>  static void free_cmds(struct queued_cmd *cmd, size_t *nr)
>  {
> -	size_t i;
> -
> -	for (i = 0; i < *nr; i++)
> +	for (size_t i = 0; i < *nr; i++)
>  		FREE_AND_NULL(cmd[i].line);

No type change, so the result is as safe as the original.

> @@ -768,7 +764,6 @@ static void batch_objects_command(struct batch_options *opt,
>  	size_t alloc = 0, nr = 0;
>  
>  	while (strbuf_getdelim_strip_crlf(&input, stdin, opt->input_delim) != EOF) {
> -		int i;
>  		const struct parse_cmd *cmd = NULL;
>  		const char *p = NULL, *cmd_end;
>  		struct queued_cmd call = {0};
> @@ -778,7 +773,7 @@ static void batch_objects_command(struct batch_options *opt,
>  		if (isspace(*input.buf))
>  			die(_("whitespace before command: '%s'"), input.buf);
>  
> -		for (i = 0; i < ARRAY_SIZE(commands); i++) {
> +		for (size_t i = 0; i < ARRAY_SIZE(commands); i++) {
>  			if (!skip_prefix(input.buf, commands[i].name, &cmd_end))
>  				continue;

ARRAY_SIZE() is some arithmetic over sizeof(*commands) and
sizeof(commands), which is of type size_t, so this is better than
the original.  Use of size_t i of course is a natural way to index
into commands[] array, so the result is just fine.

> diff --git a/fetch-pack.c b/fetch-pack.c
> index 120e01f3cf..f13951d154 100644
> --- a/fetch-pack.c
> +++ b/fetch-pack.c
> @@ -1388,9 +1388,8 @@ static void write_fetch_command_and_capabilities(struct strbuf *req_buf,
>  	if (advertise_sid && server_supports_v2("session-id"))
>  		packet_buf_write(req_buf, "session-id=%s", trace2_session_id());
>  	if (server_options && server_options->nr) {
> -		int i;
>  		ensure_server_supports_v2("server-option");
> -		for (i = 0; i < server_options->nr; i++)
> +		for (size_t i = 0; i < server_options->nr; i++)
>  			packet_buf_write(req_buf, "server-option=%s",
>  					 server_options->items[i].string);

server_options is a string_list whose .nr member is of type size_t,
so this comparison is perfectly fine.  Ditto for ->items[i].string
that is a natural way to index into an array.

>  	}

v

  reply	other threads:[~2026-06-08 14:52 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-28 19:04 [PATCH 0/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-06-28 19:04 ` [PATCH 1/6] fetch-pack: refactor packet writing Eric Ju
2024-07-04 16:59   ` Karthik Nayak
2024-07-08 15:17     ` Peijian Ju
2024-07-10  9:39       ` Karthik Nayak
2024-07-15 16:40         ` Peijian Ju
2024-06-28 19:04 ` [PATCH 2/6] fetch-pack: move fetch initialization Eric Ju
2024-06-28 19:05 ` [PATCH 3/6] serve: advertise object-info feature Eric Ju
2024-06-28 19:05 ` [PATCH 4/6] transport: add client support for object-info Eric Ju
2024-07-09  7:15   ` Toon claes
2024-07-09 16:37     ` Junio C Hamano
2024-07-13  2:32       ` Peijian Ju
2024-07-13  2:30     ` Peijian Ju
2024-07-10 10:13   ` Karthik Nayak
2024-07-16  2:39     ` Peijian Ju
2024-06-28 19:05 ` [PATCH 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-07-10 10:16   ` Karthik Nayak
2024-07-16  2:59     ` Peijian Ju
2024-06-28 19:05 ` [PATCH 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-07-09  1:50   ` Justin Tobler
2024-07-12 17:41     ` Peijian Ju
2024-07-09  7:16   ` Toon claes
2024-07-13  2:35     ` Peijian Ju
2024-07-10 12:08   ` Karthik Nayak
2024-07-17  2:38     ` Peijian Ju
2024-07-20  3:43 ` [PATCH v2 0/6] " Eric Ju
2024-07-20  3:43   ` [PATCH v2 1/6] fetch-pack: refactor packet writing Eric Ju
2024-09-24 11:45     ` Christian Couder
2024-09-25 20:42       ` Peijian Ju
2024-07-20  3:43   ` [PATCH v2 2/6] fetch-pack: move fetch initialization Eric Ju
2024-07-20  3:43   ` [PATCH v2 3/6] serve: advertise object-info feature Eric Ju
2024-07-20  3:43   ` [PATCH v2 4/6] transport: add client support for object-info Eric Ju
2024-09-24 11:45     ` Christian Couder
2024-09-24 17:29       ` Junio C Hamano
2024-09-25 18:29       ` Peijian Ju
2024-07-20  3:43   ` [PATCH v2 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-07-20  3:43   ` [PATCH v2 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-09-11 13:11     ` Toon Claes
2024-09-25 18:18       ` Peijian Ju
2024-09-24 12:13     ` Christian Couder
2024-09-25 18:12       ` Peijian Ju
2024-08-22 21:24 ` [PATCH 0/6] " Peijian Ju
2024-09-26  1:38 ` [PATCH v3 " Eric Ju
2024-09-26  1:38   ` [PATCH v3 1/6] fetch-pack: refactor packet writing Eric Ju
2024-09-26  1:38   ` [PATCH v3 2/6] fetch-pack: move fetch initialization Eric Ju
2024-09-26  1:38   ` [PATCH v3 3/6] serve: advertise object-info feature Eric Ju
2024-09-26  1:38   ` [PATCH v3 4/6] transport: add client support for object-info Eric Ju
2024-10-23  9:48     ` Christian Couder
2024-10-24 20:23       ` Peijian Ju
2024-09-26  1:38   ` [PATCH v3 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-09-26  1:38   ` [PATCH v3 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-10-23  9:49     ` Christian Couder
2024-10-23 20:25       ` Taylor Blau
2024-10-24 20:28         ` Peijian Ju
2024-10-24 20:28       ` Peijian Ju
2024-10-24 20:53 ` [PATCH v4 0/6] " Eric Ju
2024-10-24 20:53   ` [PATCH v4 1/6] fetch-pack: refactor packet writing Eric Ju
2024-10-25  9:52     ` karthik nayak
2024-10-25 16:06       ` Peijian Ju
2024-10-24 20:53   ` [PATCH v4 2/6] fetch-pack: move fetch initialization Eric Ju
2024-10-24 20:53   ` [PATCH v4 3/6] serve: advertise object-info feature Eric Ju
2024-10-24 20:53   ` [PATCH v4 4/6] transport: add client support for object-info Eric Ju
2024-10-25 10:12     ` karthik nayak
2024-10-28  5:39       ` Peijian Ju
2024-10-24 20:53   ` [PATCH v4 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-10-24 20:53   ` [PATCH v4 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-10-25 10:53     ` karthik nayak
2024-10-25 13:55       ` Christian Couder
2024-10-25 20:56   ` [PATCH v4 0/6] " Taylor Blau
2024-10-27  3:54     ` Peijian Ju
2024-10-28  0:01       ` Taylor Blau
2024-10-28 20:34 ` [PATCH v5 " Eric Ju
2024-10-28 20:34   ` [PATCH v5 1/6] fetch-pack: refactor packet writing Eric Ju
2024-11-05 17:44     ` Christian Couder
2024-11-06  1:06       ` Junio C Hamano
2024-11-06 18:00         ` Peijian Ju
2024-11-06 19:50       ` Peijian Ju
2024-10-28 20:34   ` [PATCH v5 2/6] fetch-pack: move fetch initialization Eric Ju
2024-10-28 20:34   ` [PATCH v5 3/6] serve: advertise object-info feature Eric Ju
2024-10-28 20:34   ` [PATCH v5 4/6] transport: add client support for object-info Eric Ju
2024-10-28 20:34   ` [PATCH v5 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-10-28 20:34   ` [PATCH v5 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-08 16:24 ` [PATCH v6 0/6] " Eric Ju
2024-11-08 16:24   ` [PATCH v6 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-11-08 16:24   ` [PATCH v6 2/6] fetch-pack: refactor packet writing Eric Ju
2024-11-08 16:24   ` [PATCH v6 3/6] fetch-pack: move fetch initialization Eric Ju
2024-11-08 16:24   ` [PATCH v6 4/6] serve: advertise object-info feature Eric Ju
2024-11-08 16:24   ` [PATCH v6 5/6] transport: add client support for object-info Eric Ju
2024-11-08 16:24   ` [PATCH v6 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-11  4:38   ` [PATCH v6 0/6] " Junio C Hamano
2024-11-18 16:28     ` Peijian Ju
2024-11-19  0:16       ` Junio C Hamano
2024-11-19  6:31         ` Patrick Steinhardt
2024-11-19  6:48           ` Junio C Hamano
2024-11-19 16:35             ` Peijian Ju
2024-11-20  1:19               ` Junio C Hamano
2024-11-25  5:36 ` [PATCH v7 " Eric Ju
2024-11-25  5:36   ` [PATCH v7 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:26       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 2/6] fetch-pack: refactor packet writing Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:09       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 3/6] fetch-pack: move fetch initialization Eric Ju
2024-11-25  5:36   ` [PATCH v7 4/6] serve: advertise object-info feature Eric Ju
2024-11-25  5:36   ` [PATCH v7 5/6] transport: add client support for object-info Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03  3:15       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:23       ` Peijian Ju
2024-12-05  9:50         ` Patrick Steinhardt
2024-12-05 10:34           ` Christian Couder
2024-12-23 23:25 ` [PATCH v8 0/6] " Eric Ju
2024-12-23 23:25   ` [PATCH v8 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-12-23 23:25   ` [PATCH v8 2/6] fetch-pack: refactor packet writing Eric Ju
2024-12-23 23:25   ` [PATCH v8 3/6] fetch-pack: move fetch initialization Eric Ju
2024-12-23 23:25   ` [PATCH v8 4/6] serve: advertise object-info feature Eric Ju
2024-12-23 23:25   ` [PATCH v8 5/6] transport: add client support for object-info Eric Ju
2025-01-07 18:31     ` Calvin Wan
2025-01-07 18:53       ` Junio C Hamano
2025-01-08 15:55       ` Peijian Ju
2024-12-23 23:25   ` [PATCH v8 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2025-01-07 21:29     ` Calvin Wan
2024-12-26 21:56   ` [PATCH v8 0/6] " Junio C Hamano
2024-12-30 23:25     ` Peijian Ju
2025-01-08 18:37 ` [PATCH v9 0/8] cat-file: " Eric Ju
2025-01-08 18:37   ` [PATCH v9 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-01-10 11:33     ` Christian Couder
2025-01-14  1:39       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-01-10 11:39     ` Christian Couder
2025-01-14  1:36       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 3/8] cat-file: split test utility functions into a separate library file Eric Ju
2025-01-10 14:26     ` Christian Couder
2025-01-14  1:33       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 4/8] fetch-pack: refactor packet writing Eric Ju
2025-01-08 18:37   ` [PATCH v9 5/8] fetch-pack: move fetch initialization Eric Ju
2025-01-08 18:37   ` [PATCH v9 6/8] serve: advertise object-info feature Eric Ju
2025-01-08 18:37   ` [PATCH v9 7/8] transport: add client support for object-info Eric Ju
2025-01-08 18:37   ` [PATCH v9 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-01-10 11:20     ` Christian Couder
2025-01-14  1:24       ` Peijian Ju
2025-01-14  2:14 ` [PATCH v10 0/8] " Eric Ju
2025-01-14  2:14   ` [PATCH v10 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-01-14  2:14   ` [PATCH v10 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-01-14  2:14   ` [PATCH v10 3/8] t1006: split test utility functions into new "lib-cat-file.sh" Eric Ju
2025-01-14  2:14   ` [PATCH v10 4/8] fetch-pack: refactor packet writing Eric Ju
2025-01-14  2:14   ` [PATCH v10 5/8] fetch-pack: move fetch initialization Eric Ju
2025-01-14  2:14   ` [PATCH v10 6/8] serve: advertise object-info feature Eric Ju
2025-01-14  2:14   ` [PATCH v10 7/8] transport: add client support for object-info Eric Ju
2025-02-01  2:08     ` Jeff King
2025-02-20 22:52       ` Peijian Ju
2025-01-14  2:15   ` [PATCH v10 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-02-01  2:03     ` Jeff King
2025-02-21 15:34       ` Peijian Ju
2025-02-24 23:45         ` Jeff King
2025-03-12 19:53           ` Peijian Ju
2025-02-21 19:04 ` [PATCH v11 0/8] " Eric Ju
2025-02-21 19:04   ` [PATCH v11 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-02-21 19:04   ` [PATCH v11 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-02-21 19:04   ` [PATCH v11 3/8] t1006: split test utility functions into new "lib-cat-file.sh" Eric Ju
2025-02-21 19:04   ` [PATCH v11 4/8] fetch-pack: refactor packet writing Eric Ju
2025-02-21 19:04   ` [PATCH v11 5/8] fetch-pack: move fetch initialization Eric Ju
2025-02-21 19:04   ` [PATCH v11 6/8] serve: advertise object-info feature Eric Ju
2025-02-21 19:04   ` [PATCH v11 7/8] transport: add client support for object-info Eric Ju
2025-02-21 19:04   ` [PATCH v11 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-02-24 20:46     ` Junio C Hamano
2025-03-11 23:10       ` Peijian Ju
2025-02-24 23:47     ` Jeff King
2025-03-12  2:19       ` Peijian Ju
2025-03-13  6:02         ` Jeff King
2025-03-21 18:24           ` Peijian Ju
2025-03-24  3:39             ` Jeff King
2026-03-12 21:41               ` [GSoC] " Pablo Sabater
2026-06-08 10:14   ` [PATCH GSoC RFC v12 00/12] " Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 01/12] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 02/12] git-compat-util: add strtoul_ul() with error handling Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 03/12] cat-file: add declaration of variable i inside its for loop Pablo Sabater
2026-06-08 14:52       ` Junio C Hamano [this message]
2026-06-08 10:14     ` [PATCH GSoC RFC v12 04/12] t1006: split test utility functions into new "lib-cat-file.sh" Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 05/12] fetch-pack: move function to connect.c Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 06/12] connect: refactor packet writing Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 07/12] fetch-pack: move fetch initialization Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 08/12] serve: advertise object-info feature Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 09/12] transport: add client support for object-info Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 10/12] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 11/12] cat-file: validate remote atoms with allow_list Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 12/12] cat-file: make remote-object-info allow-list dynamic Pablo Sabater

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqzf15w0cz.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=calvinwan@google.com \
    --cc=chandrapratap3519@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=eric.peijian@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jltobler@gmail.com \
    --cc=jonathantanmy@google.com \
    --cc=karthik.188@gmail.com \
    --cc=pabloosabaterr@gmail.com \
    --cc=toon@iotcl.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.