Convert for_each_ref, for_each_glob_ref, and for_each_glob_ref_in to use
struct object_id, as the latter two call the former with the function
pointer they are provided.

Convert callers to refer to properly-typed functions.  Convert uses of
the constant 20 to GIT_SHA1_RAWSZ.  Where possible, convert modified
functions to use struct object_id instead of unsigned char [20].

Signed-off-by: brian m. carlson <sand...@crustytoothpaste.net>
---
 builtin/checkout.c     |  4 ++--
 builtin/fetch.c        |  6 +++---
 builtin/name-rev.c     |  6 +++---
 builtin/pack-objects.c | 10 +++++-----
 builtin/receive-pack.c |  4 ++--
 builtin/reflog.c       |  6 +++---
 builtin/remote.c       | 14 +++++++-------
 builtin/rev-parse.c    | 10 +++++-----
 builtin/show-branch.c  | 24 ++++++++++++------------
 builtin/show-ref.c     |  4 ++--
 fetch-pack.c           | 18 ++++++++++++++----
 help.c                 |  2 +-
 log-tree.c             |  2 +-
 notes.c                |  2 +-
 reachable.c            |  2 +-
 refs.c                 | 16 ++++++++--------
 refs.h                 |  6 +++---
 remote.c               |  8 ++++----
 revision.c             |  8 ++++----
 server-info.c          |  6 +++---
 sha1_name.c            |  4 ++--
 shallow.c              |  6 +++---
 submodule.c            |  4 ++--
 transport.c            | 10 +++++-----
 walker.c               |  4 ++--
 25 files changed, 98 insertions(+), 88 deletions(-)

diff --git a/builtin/checkout.c b/builtin/checkout.c
index 2f92328..9b49f0e 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -702,10 +702,10 @@ static void update_refs_for_switch(const struct 
checkout_opts *opts,
 }
 
 static int add_pending_uninteresting_ref(const char *refname,
-                                        const unsigned char *sha1,
+                                        const struct object_id *oid,
                                         int flags, void *cb_data)
 {
-       add_pending_sha1(cb_data, refname, sha1, UNINTERESTING);
+       add_pending_sha1(cb_data, refname, oid->hash, UNINTERESTING);
        return 0;
 }
 
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 7910419..2e792f3 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -179,13 +179,13 @@ static void add_merge_config(struct ref **head,
        }
 }
 
-static int add_existing(const char *refname, const unsigned char *sha1,
+static int add_existing(const char *refname, const struct object_id *oid,
                        int flag, void *cbdata)
 {
        struct string_list *list = (struct string_list *)cbdata;
        struct string_list_item *item = string_list_insert(list, refname);
-       item->util = xmalloc(20);
-       hashcpy(item->util, sha1);
+       item->util = xmalloc(GIT_SHA1_RAWSZ);
+       hashcpy(item->util, oid->hash);
        return 0;
 }
 
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 9736d44..248a3eb 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -138,9 +138,9 @@ static int tipcmp(const void *a_, const void *b_)
        return hashcmp(a->sha1, b->sha1);
 }
 
-static int name_ref(const char *path, const unsigned char *sha1, int flags, 
void *cb_data)
+static int name_ref(const char *path, const struct object_id *oid, int flags, 
void *cb_data)
 {
-       struct object *o = parse_object(sha1);
+       struct object *o = parse_object(oid->hash);
        struct name_ref_data *data = cb_data;
        int can_abbreviate_output = data->tags_only && data->name_only;
        int deref = 0;
@@ -160,7 +160,7 @@ static int name_ref(const char *path, const unsigned char 
*sha1, int flags, void
                }
        }
 
-       add_to_tip_table(sha1, path, can_abbreviate_output);
+       add_to_tip_table(oid->hash, path, can_abbreviate_output);
 
        while (o && o->type == OBJ_TAG) {
                struct tag *t = (struct tag *) o;
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 0c69b0c..80fe8c7 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -2097,14 +2097,14 @@ static void ll_find_deltas(struct object_entry **list, 
unsigned list_size,
 #define ll_find_deltas(l, s, w, d, p)  find_deltas(l, &s, w, d, p)
 #endif
 
-static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, 
void *cb_data)
+static int add_ref_tag(const char *path, const struct object_id *oid, int 
flag, void *cb_data)
 {
-       unsigned char peeled[20];
+       struct object_id peeled;
 
        if (starts_with(path, "refs/tags/") && /* is a tag? */
-           !peel_ref(path, peeled)        && /* peelable? */
-           packlist_find(&to_pack, peeled, NULL))      /* object packed? */
-               add_object_entry(sha1, OBJ_TAG, NULL, 0);
+           !peel_ref(path, peeled.hash)    && /* peelable? */
+           packlist_find(&to_pack, peeled.hash, NULL))      /* object packed? 
*/
+               add_object_entry(oid->hash, OBJ_TAG, NULL, 0);
        return 0;
 }
 
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index d2ec52b..85e60e2 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -197,7 +197,7 @@ static void show_ref(const char *path, const unsigned char 
*sha1)
        }
 }
 
-static int show_ref_cb(const char *path, const unsigned char *sha1, int flag, 
void *unused)
+static int show_ref_cb(const char *path, const struct object_id *oid, int 
flag, void *unused)
 {
        path = strip_namespace(path);
        /*
@@ -210,7 +210,7 @@ static int show_ref_cb(const char *path, const unsigned 
char *sha1, int flag, vo
         */
        if (!path)
                path = ".have";
-       show_ref(path, sha1);
+       show_ref(path, oid->hash);
        return 0;
 }
 
diff --git a/builtin/reflog.c b/builtin/reflog.c
index 8182b64..f3f9201 100644
--- a/builtin/reflog.c
+++ b/builtin/reflog.c
@@ -313,14 +313,14 @@ static int should_expire_reflog_ent(unsigned char *osha1, 
unsigned char *nsha1,
        return 0;
 }
 
-static int push_tip_to_list(const char *refname, const unsigned char *sha1,
-                           int flags, void *cb_data)
+static int push_tip_to_list(const char *refname, const struct object_id *oid,
+                               int flags, void *cb_data)
 {
        struct commit_list **list = cb_data;
        struct commit *tip_commit;
        if (flags & REF_ISSYMREF)
                return 0;
-       tip_commit = lookup_commit_reference_gently(sha1, 1);
+       tip_commit = lookup_commit_reference_gently(oid->hash, 1);
        if (!tip_commit)
                return 0;
        commit_list_insert(tip_commit, list);
diff --git a/builtin/remote.c b/builtin/remote.c
index ad57fc9..67307ed 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -509,7 +509,7 @@ struct branches_for_remote {
 };
 
 static int add_branch_for_removal(const char *refname,
-       const unsigned char *sha1, int flags, void *cb_data)
+       const struct object_id *oid, int flags, void *cb_data)
 {
        struct branches_for_remote *branches = cb_data;
        struct refspec refspec;
@@ -544,8 +544,8 @@ static int add_branch_for_removal(const char *refname,
                return unlink(git_path("%s", refname));
 
        item = string_list_append(branches->branches, refname);
-       item->util = xmalloc(20);
-       hashcpy(item->util, sha1);
+       item->util = xmalloc(GIT_SHA1_RAWSZ);
+       hashcpy(item->util, oid->hash);
 
        return 0;
 }
@@ -557,20 +557,20 @@ struct rename_info {
 };
 
 static int read_remote_branches(const char *refname,
-       const unsigned char *sha1, int flags, void *cb_data)
+       const struct object_id *oid, int flags, void *cb_data)
 {
        struct rename_info *rename = cb_data;
        struct strbuf buf = STRBUF_INIT;
        struct string_list_item *item;
        int flag;
-       unsigned char orig_sha1[20];
+       struct object_id orig_oid;
        const char *symref;
 
        strbuf_addf(&buf, "refs/remotes/%s/", rename->old);
        if (starts_with(refname, buf.buf)) {
                item = string_list_append(rename->remote_branches, 
xstrdup(refname));
                symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
-                                           orig_sha1, &flag);
+                                           orig_oid.hash, &flag);
                if (flag & REF_ISSYMREF)
                        item->util = xstrdup(symref);
                else
@@ -867,7 +867,7 @@ static void free_remote_ref_states(struct ref_states 
*states)
 }
 
 static int append_ref_to_tracked_list(const char *refname,
-       const unsigned char *sha1, int flags, void *cb_data)
+       const struct object_id *oid, int flags, void *cb_data)
 {
        struct ref_states *states = cb_data;
        struct refspec refspec;
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index c9f2c93..4aa7a25 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -657,7 +657,7 @@ int cmd_rev_parse(int argc, const char **argv, const char 
*prefix)
                                continue;
                        }
                        if (!strcmp(arg, "--all")) {
-                               for_each_ref(show_reference, NULL);
+                               for_each_ref(show_reference_oid, NULL);
                                continue;
                        }
                        if (starts_with(arg, "--disambiguate=")) {
@@ -670,7 +670,7 @@ int cmd_rev_parse(int argc, const char **argv, const char 
*prefix)
                                continue;
                        }
                        if (starts_with(arg, "--branches=")) {
-                               for_each_glob_ref_in(show_reference, arg + 11,
+                               for_each_glob_ref_in(show_reference_oid, arg + 
11,
                                        "refs/heads/", NULL);
                                clear_ref_exclusion(&ref_excludes);
                                continue;
@@ -681,7 +681,7 @@ int cmd_rev_parse(int argc, const char **argv, const char 
*prefix)
                                continue;
                        }
                        if (starts_with(arg, "--tags=")) {
-                               for_each_glob_ref_in(show_reference, arg + 7,
+                               for_each_glob_ref_in(show_reference_oid, arg + 
7,
                                        "refs/tags/", NULL);
                                clear_ref_exclusion(&ref_excludes);
                                continue;
@@ -692,12 +692,12 @@ int cmd_rev_parse(int argc, const char **argv, const char 
*prefix)
                                continue;
                        }
                        if (starts_with(arg, "--glob=")) {
-                               for_each_glob_ref(show_reference, arg + 7, 
NULL);
+                               for_each_glob_ref(show_reference_oid, arg + 7, 
NULL);
                                clear_ref_exclusion(&ref_excludes);
                                continue;
                        }
                        if (starts_with(arg, "--remotes=")) {
-                               for_each_glob_ref_in(show_reference, arg + 10,
+                               for_each_glob_ref_in(show_reference_oid, arg + 
10,
                                        "refs/remotes/", NULL);
                                clear_ref_exclusion(&ref_excludes);
                                continue;
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index e69fb7c..e04fa8e 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -394,32 +394,32 @@ static int append_ref(const char *refname, const unsigned 
char *sha1,
        return 0;
 }
 
-static int append_head_ref(const char *refname, const unsigned char *sha1, int 
flag, void *cb_data)
+static int append_head_ref(const char *refname, const struct object_id *oid, 
int flag, void *cb_data)
 {
-       unsigned char tmp[20];
+       struct object_id tmp;
        int ofs = 11;
        if (!starts_with(refname, "refs/heads/"))
                return 0;
        /* If both heads/foo and tags/foo exists, get_sha1 would
         * get confused.
         */
-       if (get_sha1(refname + ofs, tmp) || hashcmp(tmp, sha1))
+       if (get_sha1(refname + ofs, tmp.hash) || oidcmp(&tmp, oid))
                ofs = 5;
-       return append_ref(refname + ofs, sha1, 0);
+       return append_ref(refname + ofs, oid->hash, 0);
 }
 
-static int append_remote_ref(const char *refname, const unsigned char *sha1, 
int flag, void *cb_data)
+static int append_remote_ref(const char *refname, const struct object_id *oid, 
int flag, void *cb_data)
 {
-       unsigned char tmp[20];
+       struct object_id tmp;
        int ofs = 13;
        if (!starts_with(refname, "refs/remotes/"))
                return 0;
        /* If both heads/foo and tags/foo exists, get_sha1 would
         * get confused.
         */
-       if (get_sha1(refname + ofs, tmp) || hashcmp(tmp, sha1))
+       if (get_sha1(refname + ofs, tmp.hash) || oidcmp(&tmp, oid))
                ofs = 5;
-       return append_ref(refname + ofs, sha1, 0);
+       return append_ref(refname + ofs, oid->hash, 0);
 }
 
 static int append_tag_ref(const char *refname, const unsigned char *sha1, int 
flag, void *cb_data)
@@ -440,7 +440,7 @@ static int count_slash(const char *s)
        return cnt;
 }
 
-static int append_matching_ref(const char *refname, const unsigned char *sha1, 
int flag, void *cb_data)
+static int append_matching_ref(const char *refname, const struct object_id 
*oid, int flag, void *cb_data)
 {
        /* we want to allow pattern hold/<asterisk> to show all
         * branches under refs/heads/hold/, and v0.99.9? to show
@@ -456,10 +456,10 @@ static int append_matching_ref(const char *refname, const 
unsigned char *sha1, i
        if (wildmatch(match_ref_pattern, tail, 0, NULL))
                return 0;
        if (starts_with(refname, "refs/heads/"))
-               return append_head_ref(refname, sha1, flag, cb_data);
+               return append_head_ref(refname, oid, flag, cb_data);
        if (starts_with(refname, "refs/tags/"))
-               return append_tag_ref(refname, sha1, flag, cb_data);
-       return append_ref(refname, sha1, 0);
+               return append_tag_ref(refname, oid->hash, flag, cb_data);
+       return append_ref(refname, oid->hash, 0);
 }
 
 static void snarf_refs(int head, int remotes)
diff --git a/builtin/show-ref.c b/builtin/show-ref.c
index c6c5939..6731721 100644
--- a/builtin/show-ref.c
+++ b/builtin/show-ref.c
@@ -93,7 +93,7 @@ static int show_ref_oid(const char *refname, const struct 
object_id *oid, int fl
        return show_ref(refname, oid->hash, flag, cbdata);
 }
 
-static int add_existing(const char *refname, const unsigned char *sha1, int 
flag, void *cbdata)
+static int add_existing(const char *refname, const struct object_id *oid, int 
flag, void *cbdata)
 {
        struct string_list *list = (struct string_list *)cbdata;
        string_list_insert(list, refname);
@@ -231,7 +231,7 @@ int cmd_show_ref(int argc, const char **argv, const char 
*prefix)
 
        if (show_head)
                head_ref(show_ref_oid, NULL);
-       for_each_ref(show_ref, NULL);
+       for_each_ref(show_ref_oid, NULL);
        if (!found_match) {
                if (verify && !quiet)
                        die("No match");
diff --git a/fetch-pack.c b/fetch-pack.c
index 48526aa..65a57e1 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -70,9 +70,14 @@ static int rev_list_insert_ref(const char *refname, const 
unsigned char *sha1, i
        return 0;
 }
 
-static int clear_marks(const char *refname, const unsigned char *sha1, int 
flag, void *cb_data)
+static int rev_list_insert_ref_oid(const char *refname, const struct object_id 
*oid, int flag, void *cb_data)
 {
-       struct object *o = deref_tag(parse_object(sha1), refname, 0);
+       return rev_list_insert_ref(refname, oid->hash, flag, cb_data);
+}
+
+static int clear_marks(const char *refname, const struct object_id *oid, int 
flag, void *cb_data)
+{
+       struct object *o = deref_tag(parse_object(oid->hash), refname, 0);
 
        if (o && o->type == OBJ_COMMIT)
                clear_commit_marks((struct commit *)o,
@@ -263,7 +268,7 @@ static int find_common(struct fetch_pack_args *args,
                for_each_ref(clear_marks, NULL);
        marked = 1;
 
-       for_each_ref(rev_list_insert_ref, NULL);
+       for_each_ref(rev_list_insert_ref_oid, NULL);
        for_each_alternate_ref(insert_one_alternate_ref, NULL);
 
        fetching = 0;
@@ -487,6 +492,11 @@ static int mark_complete(const char *refname, const 
unsigned char *sha1, int fla
        return 0;
 }
 
+static int mark_complete_oid(const char *refname, const struct object_id *oid, 
int flag, void *cb_data)
+{
+       return mark_complete(refname, oid->hash, flag, cb_data);
+}
+
 static void mark_recent_complete_commits(struct fetch_pack_args *args,
                                         unsigned long cutoff)
 {
@@ -599,7 +609,7 @@ static int everything_local(struct fetch_pack_args *args,
        }
 
        if (!args->depth) {
-               for_each_ref(mark_complete, NULL);
+               for_each_ref(mark_complete_oid, NULL);
                for_each_alternate_ref(mark_alternate_complete, NULL);
                commit_list_sort_by_date(&complete);
                if (cutoff)
diff --git a/help.c b/help.c
index 2072a87..6f3415b 100644
--- a/help.c
+++ b/help.c
@@ -407,7 +407,7 @@ struct similar_ref_cb {
        struct string_list *similar_refs;
 };
 
-static int append_similar_ref(const char *refname, const unsigned char *sha1,
+static int append_similar_ref(const char *refname, const struct object_id *oid,
                              int flags, void *cb_data)
 {
        struct similar_ref_cb *cb = (struct similar_ref_cb *)(cb_data);
diff --git a/log-tree.c b/log-tree.c
index a29c17e..acbc859 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -154,7 +154,7 @@ void load_ref_decorations(int flags)
        static int loaded;
        if (!loaded) {
                loaded = 1;
-               for_each_ref(add_ref_decoration, &flags);
+               for_each_ref(add_ref_decoration_oid, &flags);
                head_ref(add_ref_decoration_oid, &flags);
                for_each_commit_graft(add_graft_decoration, NULL);
        }
diff --git a/notes.c b/notes.c
index 2be4d7f..df08209 100644
--- a/notes.c
+++ b/notes.c
@@ -918,7 +918,7 @@ out:
        return ret;
 }
 
-static int string_list_add_one_ref(const char *refname, const unsigned char 
*sha1,
+static int string_list_add_one_ref(const char *refname, const struct object_id 
*oid,
                                   int flag, void *cb)
 {
        struct string_list *refs = cb;
diff --git a/reachable.c b/reachable.c
index 110ce92..b2ca0c3 100644
--- a/reachable.c
+++ b/reachable.c
@@ -173,7 +173,7 @@ void mark_reachable_objects(struct rev_info *revs, int 
mark_reflog,
        add_index_objects_to_pending(revs, 0);
 
        /* Add all external refs */
-       for_each_ref(add_one_ref, revs);
+       for_each_ref(add_one_ref_oid, revs);
 
        /* detached HEAD is not included in the list above */
        head_ref(add_one_ref_oid, revs);
diff --git a/refs.c b/refs.c
index 68d0af8..6bf7abc 100644
--- a/refs.c
+++ b/refs.c
@@ -1675,7 +1675,7 @@ char *resolve_refdup(const char *ref, int resolve_flags, 
unsigned char *sha1, in
 /* The argument to filter_refs */
 struct ref_filter {
        const char *pattern;
-       each_ref_fn *fn;
+       each_ref_fn_oid *fn;
        void *cb_data;
 };
 
@@ -1697,13 +1697,13 @@ int ref_exists(const char *refname)
        return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, sha1, NULL);
 }
 
-static int filter_refs(const char *refname, const unsigned char *sha1, int 
flags,
-                      void *data)
+static int filter_refs(const char *refname, const struct object_id *oid,
+                          int flags, void *data)
 {
        struct ref_filter *filter = (struct ref_filter *)data;
        if (wildmatch(filter->pattern, refname, 0, NULL))
                return 0;
-       return filter->fn(refname, sha1, flags, filter->cb_data);
+       return filter->fn(refname, oid, flags, filter->cb_data);
 }
 
 enum peel_status {
@@ -2009,9 +2009,9 @@ int head_ref_submodule(const char *submodule, 
each_ref_fn_oid fn, void *cb_data)
        return do_head_ref(submodule, fn, cb_data);
 }
 
-int for_each_ref(each_ref_fn fn, void *cb_data)
+int for_each_ref(each_ref_fn_oid fn, void *cb_data)
 {
-       return do_for_each_ref(&ref_cache, "", fn, 0, 0, cb_data);
+       return do_for_each_ref_oid(&ref_cache, "", fn, 0, 0, cb_data);
 }
 
 int for_each_ref_submodule(const char *submodule, each_ref_fn_oid fn, void 
*cb_data)
@@ -2090,7 +2090,7 @@ int for_each_namespaced_ref(each_ref_fn fn, void *cb_data)
        return ret;
 }
 
-int for_each_glob_ref_in(each_ref_fn fn, const char *pattern,
+int for_each_glob_ref_in(each_ref_fn_oid fn, const char *pattern,
        const char *prefix, void *cb_data)
 {
        struct strbuf real_pattern = STRBUF_INIT;
@@ -2120,7 +2120,7 @@ int for_each_glob_ref_in(each_ref_fn fn, const char 
*pattern,
        return ret;
 }
 
-int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data)
+int for_each_glob_ref(each_ref_fn_oid fn, const char *pattern, void *cb_data)
 {
        return for_each_glob_ref_in(fn, pattern, NULL, cb_data);
 }
diff --git a/refs.h b/refs.h
index 2476951..c041cd1 100644
--- a/refs.h
+++ b/refs.h
@@ -87,14 +87,14 @@ typedef int each_ref_fn_oid(const char *refname,
  * stop the iteration.
  */
 extern int head_ref(each_ref_fn_oid, void *);
-extern int for_each_ref(each_ref_fn, void *);
+extern int for_each_ref(each_ref_fn_oid, void *);
 extern int for_each_ref_in(const char *, each_ref_fn_oid, void *);
 extern int for_each_tag_ref(each_ref_fn_oid, void *);
 extern int for_each_branch_ref(each_ref_fn_oid, void *);
 extern int for_each_remote_ref(each_ref_fn_oid, void *);
 extern int for_each_replace_ref(each_ref_fn, void *);
-extern int for_each_glob_ref(each_ref_fn, const char *pattern, void *);
-extern int for_each_glob_ref_in(each_ref_fn, const char *pattern, const char* 
prefix, void *);
+extern int for_each_glob_ref(each_ref_fn_oid, const char *pattern, void *);
+extern int for_each_glob_ref_in(each_ref_fn_oid, const char *pattern, const 
char* prefix, void *);
 
 extern int head_ref_submodule(const char *submodule, each_ref_fn_oid fn, void 
*cb_data);
 extern int for_each_ref_submodule(const char *submodule, each_ref_fn_oid fn, 
void *cb_data);
diff --git a/remote.c b/remote.c
index 68901b0..b544997 100644
--- a/remote.c
+++ b/remote.c
@@ -2024,7 +2024,7 @@ int format_tracking_info(struct branch *branch, struct 
strbuf *sb)
        return 1;
 }
 
-static int one_local_ref(const char *refname, const unsigned char *sha1, int 
flag, void *cb_data)
+static int one_local_ref(const char *refname, const struct object_id *oid, int 
flag, void *cb_data)
 {
        struct ref ***local_tail = cb_data;
        struct ref *ref;
@@ -2036,7 +2036,7 @@ static int one_local_ref(const char *refname, const 
unsigned char *sha1, int fla
 
        len = strlen(refname) + 1;
        ref = xcalloc(1, sizeof(*ref) + len);
-       hashcpy(ref->new_sha1, sha1);
+       hashcpy(ref->new_sha1, oid->hash);
        memcpy(ref->name, refname, len);
        **local_tail = ref;
        *local_tail = &ref->next;
@@ -2099,7 +2099,7 @@ struct stale_heads_info {
 };
 
 static int get_stale_heads_cb(const char *refname,
-       const unsigned char *sha1, int flags, void *cb_data)
+       const struct object_id *oid, int flags, void *cb_data)
 {
        struct stale_heads_info *info = cb_data;
        struct string_list matches = STRING_LIST_INIT_DUP;
@@ -2128,7 +2128,7 @@ static int get_stale_heads_cb(const char *refname,
 
        if (stale) {
                struct ref *ref = make_linked_ref(refname, 
&info->stale_refs_tail);
-               hashcpy(ref->new_sha1, sha1);
+               hashcpy(ref->new_sha1, oid->hash);
        }
 
 clean_exit:
diff --git a/revision.c b/revision.c
index 6fb499f..29af759 100644
--- a/revision.c
+++ b/revision.c
@@ -2127,7 +2127,7 @@ static int handle_revision_pseudo_opt(const char 
*submodule,
        } else if ((argcount = parse_long_opt("glob", argv, &optarg))) {
                struct all_refs_cb cb;
                init_all_refs_cb(&cb, revs, *flags);
-               for_each_glob_ref(handle_one_ref, optarg, &cb);
+               for_each_glob_ref(handle_one_ref_oid, optarg, &cb);
                clear_ref_exclusion(&revs->ref_excludes);
                return argcount;
        } else if ((argcount = parse_long_opt("exclude", argv, &optarg))) {
@@ -2136,17 +2136,17 @@ static int handle_revision_pseudo_opt(const char 
*submodule,
        } else if (starts_with(arg, "--branches=")) {
                struct all_refs_cb cb;
                init_all_refs_cb(&cb, revs, *flags);
-               for_each_glob_ref_in(handle_one_ref, arg + 11, "refs/heads/", 
&cb);
+               for_each_glob_ref_in(handle_one_ref_oid, arg + 11, 
"refs/heads/", &cb);
                clear_ref_exclusion(&revs->ref_excludes);
        } else if (starts_with(arg, "--tags=")) {
                struct all_refs_cb cb;
                init_all_refs_cb(&cb, revs, *flags);
-               for_each_glob_ref_in(handle_one_ref, arg + 7, "refs/tags/", 
&cb);
+               for_each_glob_ref_in(handle_one_ref_oid, arg + 7, "refs/tags/", 
&cb);
                clear_ref_exclusion(&revs->ref_excludes);
        } else if (starts_with(arg, "--remotes=")) {
                struct all_refs_cb cb;
                init_all_refs_cb(&cb, revs, *flags);
-               for_each_glob_ref_in(handle_one_ref, arg + 10, "refs/remotes/", 
&cb);
+               for_each_glob_ref_in(handle_one_ref_oid, arg + 10, 
"refs/remotes/", &cb);
                clear_ref_exclusion(&revs->ref_excludes);
        } else if (!strcmp(arg, "--reflog")) {
                add_reflogs_to_pending(revs, *flags);
diff --git a/server-info.c b/server-info.c
index 34b0253..11f21bd 100644
--- a/server-info.c
+++ b/server-info.c
@@ -47,14 +47,14 @@ out:
        return ret;
 }
 
-static int add_info_ref(const char *path, const unsigned char *sha1, int flag, 
void *cb_data)
+static int add_info_ref(const char *path, const struct object_id *oid, int 
flag, void *cb_data)
 {
        FILE *fp = cb_data;
-       struct object *o = parse_object(sha1);
+       struct object *o = parse_object(oid->hash);
        if (!o)
                return -1;
 
-       if (fprintf(fp, "%s     %s\n", sha1_to_hex(sha1), path) < 0)
+       if (fprintf(fp, "%s     %s\n", oid_to_hex(oid), path) < 0)
                return -1;
 
        if (o->type == OBJ_TAG) {
diff --git a/sha1_name.c b/sha1_name.c
index 6d10f05..959e6c1 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -832,10 +832,10 @@ static int get_sha1_1(const char *name, int len, unsigned 
char *sha1, unsigned l
 #define ONELINE_SEEN (1u<<20)
 
 static int handle_one_ref(const char *path,
-               const unsigned char *sha1, int flag, void *cb_data)
+               const struct object_id *oid, int flag, void *cb_data)
 {
        struct commit_list **list = cb_data;
-       struct object *object = parse_object(sha1);
+       struct object *object = parse_object(oid->hash);
        if (!object)
                return 0;
        if (object->type == OBJ_TAG) {
diff --git a/shallow.c b/shallow.c
index 0343b16..6511bbb 100644
--- a/shallow.c
+++ b/shallow.c
@@ -550,7 +550,7 @@ void assign_shallow_commits_to_refs(struct shallow_info 
*info,
         * have to go down to the current shallow commits.
         */
        head_ref(mark_uninteresting_oid, NULL);
-       for_each_ref(mark_uninteresting, NULL);
+       for_each_ref(mark_uninteresting_oid, NULL);
 
        /* Mark potential bottoms so we won't go out of bound */
        for (i = 0; i < nr_shallow; i++) {
@@ -655,7 +655,7 @@ static void post_assign_shallow(struct shallow_info *info,
 
        memset(&ca, 0, sizeof(ca));
        head_ref(add_ref_oid, &ca);
-       for_each_ref(add_ref, &ca);
+       for_each_ref(add_ref_oid, &ca);
 
        /* Remove unreachable shallow commits from "ours" */
        for (i = dst = 0; i < info->nr_ours; i++) {
@@ -689,7 +689,7 @@ int delayed_reachability_test(struct shallow_info *si, int 
c)
                        struct commit_array ca;
                        memset(&ca, 0, sizeof(ca));
                        head_ref(add_ref_oid, &ca);
-                       for_each_ref(add_ref, &ca);
+                       for_each_ref(add_ref_oid, &ca);
                        si->commits = ca.commits;
                        si->nr_commits = ca.nr;
                }
diff --git a/submodule.c b/submodule.c
index 97e74c5..b284444 100644
--- a/submodule.c
+++ b/submodule.c
@@ -616,10 +616,10 @@ static void submodule_collect_changed_cb(struct 
diff_queue_struct *q,
        }
 }
 
-static int add_sha1_to_array(const char *ref, const unsigned char *sha1,
+static int add_sha1_to_array(const char *ref, const struct object_id *oid,
                             int flags, void *data)
 {
-       sha1_array_append(data, sha1);
+       sha1_array_append(data, oid->hash);
        return 0;
 }
 
diff --git a/transport.c b/transport.c
index f080e93..c13108b 100644
--- a/transport.c
+++ b/transport.c
@@ -278,7 +278,7 @@ static int fetch_objs_via_rsync(struct transport *transport,
        return run_command(&rsync);
 }
 
-static int write_one_ref(const char *name, const unsigned char *sha1,
+static int write_one_ref(const char *name, const struct object_id *oid,
                int flags, void *data)
 {
        struct strbuf *buf = data;
@@ -291,7 +291,7 @@ static int write_one_ref(const char *name, const unsigned 
char *sha1,
 
        strbuf_addstr(buf, name);
        if (safe_create_leading_directories(buf->buf) ||
-           write_file(buf->buf, 0, "%s\n", sha1_to_hex(sha1)))
+           write_file(buf->buf, 0, "%s\n", oid_to_hex(oid)))
                return error("problems writing temporary file %s: %s",
                             buf->buf, strerror(errno));
        strbuf_setlen(buf, len);
@@ -304,13 +304,13 @@ static int write_refs_to_temp_dir(struct strbuf *temp_dir,
        int i;
 
        for (i = 0; i < refspec_nr; i++) {
-               unsigned char sha1[20];
+               struct object_id oid;
                char *ref;
 
-               if (dwim_ref(refspec[i], strlen(refspec[i]), sha1, &ref) != 1)
+               if (dwim_ref(refspec[i], strlen(refspec[i]), oid.hash, &ref) != 
1)
                        return error("Could not get ref %s", refspec[i]);
 
-               if (write_one_ref(ref, sha1, 0, temp_dir)) {
+               if (write_one_ref(ref, &oid, 0, temp_dir)) {
                        free(ref);
                        return -1;
                }
diff --git a/walker.c b/walker.c
index 58ffeca..033c8f2 100644
--- a/walker.c
+++ b/walker.c
@@ -200,9 +200,9 @@ static int interpret_target(struct walker *walker, char 
*target, unsigned char *
        return -1;
 }
 
-static int mark_complete(const char *path, const unsigned char *sha1, int 
flag, void *cb_data)
+static int mark_complete(const char *path, const struct object_id *oid, int 
flag, void *cb_data)
 {
-       struct commit *commit = lookup_commit_reference_gently(sha1, 1);
+       struct commit *commit = lookup_commit_reference_gently(oid->hash, 1);
        if (commit) {
                commit->object.flags |= COMPLETE;
                commit_list_insert(commit, &complete);
-- 
2.3.5

--
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