]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reflog expire: refactor & use "tip_commit" only for UE_NORMAL
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 22 Dec 2021 04:06:44 +0000 (05:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Dec 2021 00:24:13 +0000 (16:24 -0800)
Add an intermediate variable for "tip_commit" in
reflog_expiry_prepare(), and only add it to the struct if we're
handling the UE_NORMAL case.

The code behaves the same way as before, but this makes the control
flow clearer, and the shorter name allows us to fold a 4-line i/else
into a one-line ternary instead.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reflog.c

index 8d05660e644a615a6253546bd82dfde59924ca71..f18a63751f378d91dfd82d52f0209dc5f568fb79 100644 (file)
@@ -354,16 +354,14 @@ static void reflog_expiry_prepare(const char *refname,
 {
        struct expire_reflog_policy_cb *cb = cb_data;
        struct commit_list *elem;
+       struct commit *commit = NULL;
 
        if (!cb->cmd.expire_unreachable || is_head(refname)) {
                cb->unreachable_expire_kind = UE_HEAD;
        } else {
-               cb->tip_commit = lookup_commit_reference_gently(the_repository,
-                                                               oid, 1);
-               if (!cb->tip_commit)
-                       cb->unreachable_expire_kind = UE_ALWAYS;
-               else
-                       cb->unreachable_expire_kind = UE_NORMAL;
+               commit = lookup_commit_reference_gently(the_repository,
+                                                       oid, 1);
+               cb->unreachable_expire_kind = commit ? UE_NORMAL : UE_ALWAYS;
        }
 
        if (cb->cmd.expire_unreachable <= cb->cmd.expire_total)
@@ -378,7 +376,9 @@ static void reflog_expiry_prepare(const char *refname,
                        commit_list_insert(elem->item, &cb->mark_list);
                break;
        case UE_NORMAL:
-               commit_list_insert(cb->tip_commit, &cb->mark_list);
+               commit_list_insert(commit, &cb->mark_list);
+               /* For reflog_expiry_cleanup() below */
+               cb->tip_commit = commit;
        }
        cb->mark_limit = cb->cmd.expire_total;
        mark_reachable(cb);