Jeff King <p...@peff.net> writes:

> All of the information needed to find the @{upstream} of a
> branch is included in the branch struct, but callers have to
> navigate a series of possible-NULL values to get there.
> Let's wrap that logic up in an easy-to-read helper.
>
> Signed-off-by: Jeff King <p...@peff.net>

This step in the whole series is a gem.  I cannot believe that we
were content having to repeat that "branch->merge[0]->dst if we can
dereference down to that level" this many times.  Nice clean-up.

> diff --git a/builtin/branch.c b/builtin/branch.c
> index 258fe2f..1eb6215 100644
> --- a/builtin/branch.c
> +++ b/builtin/branch.c
> @@ -123,14 +123,12 @@ static int branch_merged(int kind, const char *name,
>  
>       if (kind == REF_LOCAL_BRANCH) {
>               struct branch *branch = branch_get(name);
> +             const char *upstream = branch_get_upstream(branch);
>               unsigned char sha1[20];
>  
> -             if (branch &&
> -                 branch->merge &&
> -                 branch->merge[0] &&
> -                 branch->merge[0]->dst &&
> +             if (upstream &&
>                   (reference_name = reference_name_to_free =
> -                  resolve_refdup(branch->merge[0]->dst, RESOLVE_REF_READING,
> +                  resolve_refdup(upstream, RESOLVE_REF_READING,
>                                   sha1, NULL)) != NULL)
>                       reference_rev = lookup_commit_reference(sha1);
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to