All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Jeff King via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org,  ps@pks.im,  Jeff King <peff@peff.net>,
	 Derrick Stolee <stolee@gmail.com>
Subject: Re: [PATCH v2 3/3] diff: modify output_prefix function pointer
Date: Thu, 03 Oct 2024 09:26:23 -0700	[thread overview]
Message-ID: <xmqqsetdi24w.fsf@gitster.g> (raw)
In-Reply-To: <e1d825ad212d91505eee9d911abbd3ba6bc170b1.1727956724.git.gitgitgadget@gmail.com> (Jeff King via GitGitGadget's message of "Thu, 03 Oct 2024 11:58:44 +0000")

"Jeff King via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Jeff King <peff@peff.net>
>
> The uses of the output_prefix function pointer in the diff_options
> struct is currently difficult to work with by returning a pointer to a
> strbuf. There is only one use that cares about the length of the string,
> which appears to be the only justification of the return type.
>
> We already noticed confusing memory issues around this return type, so
> use a const char * return type to make it clear that the caller does not
> own this string buffer.
>
> Signed-off-by: Jeff King <peff@peff.net>
> Signed-off-by: Derrick Stolee <stolee@gmail.com>
> ---
>  diff-lib.c   | 4 ++--
>  diff.c       | 8 +++-----
>  diff.h       | 2 +-
>  graph.c      | 4 ++--
>  log-tree.c   | 4 ++--
>  range-diff.c | 4 ++--
>  6 files changed, 12 insertions(+), 14 deletions(-)

Very nice.

>  			if (opt->diffopt.output_prefix) {
> -				struct strbuf *msg = NULL;
> +				const char *msg;
>  				msg = opt->diffopt.output_prefix(&opt->diffopt,
>  					opt->diffopt.output_prefix_data);
> -				fwrite(msg->buf, msg->len, 1, opt->diffopt.file);
> +				fwrite(msg, strlen(msg), 1, opt->diffopt.file);
>  			}

OK.  We are not relying on the strbuf being able to have embedded
NUL in the buffer, and this looks very sensible.

Thanks.

  reply	other threads:[~2024-10-03 16:26 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-02 16:07 [PATCH] line-log: protect inner strbuf from free Derrick Stolee via GitGitGadget
2024-10-02 23:56 ` Jeff King
2024-10-03  0:19   ` Jeff King
2024-10-03  2:36   ` Derrick Stolee
2024-10-03  6:11     ` Jeff King
2024-10-03 12:23       ` Derrick Stolee
2024-10-03 21:02         ` Jeff King
2024-10-03 11:58 ` [PATCH v2 0/3] " Derrick Stolee via GitGitGadget
2024-10-03 11:58   ` [PATCH v2 1/3] " Derrick Stolee via GitGitGadget
2024-10-04  4:32     ` Patrick Steinhardt
2024-10-03 11:58   ` [PATCH v2 2/3] line-log: remove output_prefix() Jeff King via GitGitGadget
2024-10-03 11:58   ` [PATCH v2 3/3] diff: modify output_prefix function pointer Jeff King via GitGitGadget
2024-10-03 16:26     ` Junio C Hamano [this message]
2024-10-03 21:05   ` [PATCH 0/5] diff output_prefix cleanups Jeff King
2024-10-03 21:06     ` [PATCH 1/5] line-log: use diff_line_prefix() instead of custom helper Jeff King
2024-10-03 21:06     ` [PATCH 2/5] diff: drop line_prefix_length field Jeff King
2024-10-03 21:09     ` [PATCH 3/5] diff: return const char from output_prefix callback Jeff King
2024-10-03 21:11     ` [PATCH 4/5] diff: return line_prefix directly when possible Jeff King
2024-10-03 21:13     ` [PATCH 5/5] diff: store graph prefix buf in git_graph struct Jeff King
2024-10-03 23:43       ` Junio C Hamano
2024-10-04  4:32         ` Patrick Steinhardt
2024-10-04 19:27     ` [PATCH 0/5] diff output_prefix cleanups Derrick Stolee
2024-10-04 19:31       ` Junio C Hamano
2024-10-04 19:33     ` Derrick Stolee

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=xmqqsetdi24w.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=peff@peff.net \
    --cc=ps@pks.im \
    --cc=stolee@gmail.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.