]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff: return line_prefix directly when possible
authorJeff King <peff@peff.net>
Thu, 3 Oct 2024 21:11:31 +0000 (17:11 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 3 Oct 2024 21:22:22 +0000 (14:22 -0700)
We may point our output_prefix callback to diff_output_prefix_callback()
in any of these cases:

  1. we have a user-provided line_prefix

  2. we have a graph prefix to show

  3. both (1) and (2)

The function combines the available elements into a strbuf and returns
its pointer.

In the case that we just have the line_prefix, though, there is no need
for the strbuf. We can return the string directly.

This is a minor optimization by itself, but also will allow us to clean
up some memory ownership issues on top.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
graph.c

diff --git a/graph.c b/graph.c
index 6a4db229bb8380e6873540717ee47d2218819ced..c8833ecc3e84b855fb38ce5b9a54565f178e869b 100644 (file)
--- a/graph.c
+++ b/graph.c
@@ -316,6 +316,9 @@ static const char *diff_output_prefix_callback(struct diff_options *opt, void *d
 
        assert(opt);
 
+       if (!graph)
+               return opt->line_prefix;
+
        strbuf_reset(&msgbuf);
        if (opt->line_prefix)
                strbuf_addstr(&msgbuf, opt->line_prefix);