fetch: avoid unnecessary work when there is no current branch

As pointed out by CodeQL, `branch_get()` may return `NULL`, in which
case `branch_has_merge_config()` would return early, but we can even
avoid enumerating the refs prefixes in that case, saving even more CPU
cycles.

Technically, we should enclose these two statements in an `if (branch)
{...}` block, but the indentation is already quite deep, therefore I
refrained from doing that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin
2025-05-15 13:11:44 +00:00
committed by Junio C Hamano
parent 655268452c
commit 6c91162449

View File

@@ -1728,7 +1728,7 @@ static int do_fetch(struct transport *transport,
if (transport->remote->follow_remote_head != FOLLOW_REMOTE_NEVER) if (transport->remote->follow_remote_head != FOLLOW_REMOTE_NEVER)
do_set_head = 1; do_set_head = 1;
} }
if (branch_has_merge_config(branch) && if (branch && branch_has_merge_config(branch) &&
!strcmp(branch->remote_name, transport->remote->name)) { !strcmp(branch->remote_name, transport->remote->name)) {
int i; int i;
for (i = 0; i < branch->merge_nr; i++) { for (i = 0; i < branch->merge_nr; i++) {