brian m. carlson wrote:

> All of the callers of these functions just pass the hash member of a
> struct object_id, so convert them to use a pointer to struct object_id
> directly.
>
> Signed-off-by: brian m. carlson <sand...@crustytoothpaste.net>
> ---
>  archive.c             |  2 +-
>  branch.c              |  2 +-
>  builtin/fast-export.c |  2 +-
>  builtin/log.c         |  2 +-
>  builtin/merge-base.c  |  2 +-
>  builtin/merge.c       |  2 +-
>  builtin/rev-parse.c   |  2 +-
>  builtin/show-branch.c |  2 +-
>  bundle.c              |  2 +-
>  refs.c                | 14 +++++++-------
>  refs.h                |  4 ++--
>  remote.c              |  3 +--
>  sha1_name.c           |  6 +++---
>  upload-pack.c         |  2 +-
>  wt-status.c           |  2 +-
>  15 files changed, 24 insertions(+), 25 deletions(-)

One worry below.  I might be worrying in vain but thought I might as
well ask.

> --- a/refs.c
> +++ b/refs.c
[...]
> -int expand_ref(const char *str, int len, unsigned char *sha1, char **ref)
> +int expand_ref(const char *str, int len, struct object_id *oid, char **ref)
>  {
>       const char **p, *r;
>       int refs_found = 0;
> @@ -472,15 +472,15 @@ int expand_ref(const char *str, int len, unsigned char 
> *sha1, char **ref)
>  
>       *ref = NULL;
>       for (p = ref_rev_parse_rules; *p; p++) {
> -             unsigned char sha1_from_ref[20];
> -             unsigned char *this_result;
> +             struct object_id oid_from_ref;
> +             struct object_id *this_result;
>               int flag;
>  
> -             this_result = refs_found ? sha1_from_ref : sha1;
> +             this_result = refs_found ? &oid_from_ref : oid;
>               strbuf_reset(&fullref);
>               strbuf_addf(&fullref, *p, len, str);
>               r = resolve_ref_unsafe(fullref.buf, RESOLVE_REF_READING,
> -                                    this_result, &flag);
> +                                    this_result->hash, &flag);

Can this_result be NULL?  Can the oid param be NULL?

Since both this and dwim_ref are non-static functions, I'd be comforted by an

        if (!oid)
                BUG("expand_ref: oid must be non-NULL");

at the top so that mistakes in callers are caught quickly.

[...]
> --- a/remote.c
> +++ b/remote.c
> @@ -1628,8 +1628,7 @@ static void set_merge(struct branch *ret)
>               if (!remote_find_tracking(remote, ret->merge[i]) ||
>                   strcmp(ret->remote_name, "."))
>                       continue;
> -             if (dwim_ref(ret->merge_name[i], strlen(ret->merge_name[i]),
> -                          oid.hash, &ref) == 1)
> +             if (dwim_ref(ret->merge_name[i], strlen(ret->merge_name[i]), 
> &oid, &ref) == 1)
>                       ret->merge[i]->dst = ref;

Long line (but as discussed earlier in this series, I don't mind).

Thanks,
Jonathan

Reply via email to