From 86baf82521de70184182972b96bbf1859f097366 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Wed, 16 May 2018 15:58:12 -0700 Subject: remote: convert query_refspecs to take a struct refspec Convert 'query_refspecs()' to take a 'struct refspec' as a parameter instead of a list of 'struct refspec_item'. Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano --- builtin/push.c | 3 +-- remote.c | 10 +++++----- remote.h | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/builtin/push.c b/builtin/push.c index 509dc66772..6b7e458907 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -83,8 +83,7 @@ static const char *map_refspec(const char *ref, struct refspec_item query; memset(&query, 0, sizeof(struct refspec_item)); query.src = matched->name; - if (!query_refspecs(remote->push.items, remote->push.nr, &query) && - query.dst) { + if (!query_refspecs(&remote->push, &query) && query.dst) { struct strbuf buf = STRBUF_INIT; strbuf_addf(&buf, "%s%s:%s", query.force ? "+" : "", diff --git a/remote.c b/remote.c index 89415a2631..dd68e6b22d 100644 --- a/remote.c +++ b/remote.c @@ -725,7 +725,7 @@ static void query_refspecs_multiple(struct refspec *rs, } } -int query_refspecs(struct refspec_item *refs, int ref_count, struct refspec_item *query) +int query_refspecs(struct refspec *rs, struct refspec_item *query) { int i; int find_src = !query->src; @@ -735,8 +735,8 @@ int query_refspecs(struct refspec_item *refs, int ref_count, struct refspec_item if (find_src && !query->dst) return error("query_refspecs: need either src or dst"); - for (i = 0; i < ref_count; i++) { - struct refspec_item *refspec = &refs[i]; + for (i = 0; i < rs->nr; i++) { + struct refspec_item *refspec = &rs->items[i]; const char *key = find_src ? refspec->dst : refspec->src; const char *value = find_src ? refspec->src : refspec->dst; @@ -763,7 +763,7 @@ char *apply_refspecs(struct refspec *rs, const char *name) memset(&query, 0, sizeof(struct refspec_item)); query.src = (char *)name; - if (query_refspecs(rs->items, rs->nr, &query)) + if (query_refspecs(rs, &query)) return NULL; return query.dst; @@ -771,7 +771,7 @@ char *apply_refspecs(struct refspec *rs, const char *name) int remote_find_tracking(struct remote *remote, struct refspec_item *refspec) { - return query_refspecs(remote->fetch.items, remote->fetch.nr, refspec); + return query_refspecs(&remote->fetch, refspec); } static struct ref *alloc_ref_with_prefix(const char *prefix, size_t prefixlen, diff --git a/remote.h b/remote.h index 0b1fcc051d..9050ff75ac 100644 --- a/remote.h +++ b/remote.h @@ -158,7 +158,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); +int query_refspecs(struct refspec *rs, struct refspec_item *query); char *apply_refspecs(struct refspec *rs, const char *name); int check_push_refs(struct ref *src, int nr_refspec, const char **refspec); -- cgit v1.2.3