]> git.ipfire.org Git - thirdparty/git.git/commitdiff
shortlog: make trailer insertion a noop when appropriate
authorTaylor Blau <me@ttaylorr.com>
Mon, 24 Oct 2022 18:55:33 +0000 (14:55 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Oct 2022 21:48:05 +0000 (14:48 -0700)
When there are no trailers to insert, it is natural that
insert_records_from_trailers() should return without having done any
work.

But instead we guard this call unnecessarily by first checking whether
`log->groups` has the `SHORTLOG_GROUP_TRAILER` bit set.

Prepare to match a similar pattern in the future where a function which
inserts records of a certain type does no work when no specifiers
matching that type are given.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/shortlog.c

index 53c379a51d0bd103428afe643a3780fdea8e0de5..18f0800c826274cd615cc5e37cda2531a6e370ee 100644 (file)
@@ -170,6 +170,9 @@ static void insert_records_from_trailers(struct shortlog *log,
        const char *commit_buffer, *body;
        struct strbuf ident = STRBUF_INIT;
 
+       if (!log->trailers.nr)
+               return;
+
        /*
         * Using format_commit_message("%B") would be simpler here, but
         * this saves us copying the message.
@@ -240,9 +243,7 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit)
                    strset_add(&dups, ident.buf))
                        insert_one_record(log, ident.buf, oneline_str);
        }
-       if (log->groups & SHORTLOG_GROUP_TRAILER) {
-               insert_records_from_trailers(log, &dups, commit, &ctx, oneline_str);
-       }
+       insert_records_from_trailers(log, &dups, commit, &ctx, oneline_str);
 
        strset_clear(&dups);
        strbuf_release(&ident);