Convert 'apply_refspecs()' to take a 'struct refspec' as a parameter instead
of a list of 'struct refspec_item'.

Signed-off-by: Brandon Williams <bmw...@google.com>
---
 builtin/fast-export.c |  2 +-
 remote.c              | 15 ++++++---------
 remote.h              |  3 +--
 transport-helper.c    |  6 +++---
 4 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 143999738..41fe49e4d 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -831,7 +831,7 @@ static void get_tags_and_duplicates(struct rev_cmdline_info 
*info)
 
                if (refspecs.nr) {
                        char *private;
-                       private = apply_refspecs(refspecs.items, refspecs.nr, 
full_name);
+                       private = apply_refspecs(&refspecs, full_name);
                        if (private) {
                                free(full_name);
                                full_name = private;
diff --git a/remote.c b/remote.c
index 358442e4b..89415a263 100644
--- a/remote.c
+++ b/remote.c
@@ -525,8 +525,7 @@ const char *remote_ref_for_branch(struct branch *branch, 
int for_push,
                        struct remote *remote = remote_get(remote_name);
 
                        if (remote && remote->push.nr &&
-                           (dst = apply_refspecs(remote->push.items,
-                                                 remote->push.nr,
+                           (dst = apply_refspecs(&remote->push,
                                                  branch->refname))) {
                                if (explicit)
                                        *explicit = 1;
@@ -757,15 +756,14 @@ int query_refspecs(struct refspec_item *refs, int 
ref_count, struct refspec_item
        return -1;
 }
 
-char *apply_refspecs(struct refspec_item *refspecs, int nr_refspec,
-                    const char *name)
+char *apply_refspecs(struct refspec *rs, const char *name)
 {
        struct refspec_item query;
 
        memset(&query, 0, sizeof(struct refspec_item));
        query.src = (char *)name;
 
-       if (query_refspecs(refspecs, nr_refspec, &query))
+       if (query_refspecs(rs->items, rs->nr, &query))
                return NULL;
 
        return query.dst;
@@ -1571,7 +1569,7 @@ static const char *tracking_for_push_dest(struct remote 
*remote,
 {
        char *ret;
 
-       ret = apply_refspecs(remote->fetch.items, remote->fetch.nr, refname);
+       ret = apply_refspecs(&remote->fetch, refname);
        if (!ret)
                return error_buf(err,
                                 _("push destination '%s' on remote '%s' has no 
local tracking branch"),
@@ -1593,8 +1591,7 @@ static const char *branch_get_push_1(struct branch 
*branch, struct strbuf *err)
                char *dst;
                const char *ret;
 
-               dst = apply_refspecs(remote->push.items, remote->push.nr,
-                                    branch->refname);
+               dst = apply_refspecs(&remote->push, branch->refname);
                if (!dst)
                        return error_buf(err,
                                         _("push refspecs for '%s' do not 
include '%s'"),
@@ -2203,7 +2200,7 @@ static int remote_tracking(struct remote *remote, const 
char *refname,
 {
        char *dst;
 
-       dst = apply_refspecs(remote->fetch.items, remote->fetch.nr, refname);
+       dst = apply_refspecs(&remote->fetch, refname);
        if (!dst)
                return -1; /* no tracking ref for refname at remote */
        if (read_ref(dst, oid))
diff --git a/remote.h b/remote.h
index 1a45542cd..0b1fcc051 100644
--- a/remote.h
+++ b/remote.h
@@ -159,8 +159,7 @@ int ref_newer(const struct object_id *new_oid, const struct 
object_id *old_oid);
 struct ref *ref_remove_duplicates(struct ref *ref_map);
 
 extern int query_refspecs(struct refspec_item *specs, int nr, struct 
refspec_item *query);
-char *apply_refspecs(struct refspec_item *refspecs, int nr_refspec,
-                    const char *name);
+char *apply_refspecs(struct refspec *rs, const char *name);
 
 int check_push_refs(struct ref *src, int nr_refspec, const char **refspec);
 int match_push_refs(struct ref *src, struct ref **dst,
diff --git a/transport-helper.c b/transport-helper.c
index 33f51ebfc..1f8ff7e94 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -523,7 +523,7 @@ static int fetch_with_import(struct transport *transport,
                        continue;
                name = posn->symref ? posn->symref : posn->name;
                if (data->rs.nr)
-                       private = apply_refspecs(data->rs.items, data->rs.nr, 
name);
+                       private = apply_refspecs(&data->rs, name);
                else
                        private = xstrdup(name);
                if (private) {
@@ -805,7 +805,7 @@ static int push_update_refs_status(struct helper_data *data,
                        continue;
 
                /* propagate back the update to the remote namespace */
-               private = apply_refspecs(data->rs.items, data->rs.nr, 
ref->name);
+               private = apply_refspecs(&data->rs, ref->name);
                if (!private)
                        continue;
                update_ref("update by helper", private, &ref->new_oid, NULL,
@@ -942,7 +942,7 @@ static int push_refs_with_export(struct transport 
*transport,
                char *private;
                struct object_id oid;
 
-               private = apply_refspecs(data->rs.items, data->rs.nr, 
ref->name);
+               private = apply_refspecs(&data->rs, ref->name);
                if (private && !get_oid(private, &oid)) {
                        strbuf_addf(&buf, "^%s", private);
                        string_list_append_nodup(&revlist_args,
-- 
2.17.0.441.gb46fe60e1d-goog

Reply via email to