Convert 'valid_fetch_refspec()' to use the new 'parse_refspec()' function to only parse a single refspec and eliminate an allocation. Signed-off-by: Brandon Williams <bmwill@xxxxxxxxxx> --- refspec.c | 17 ++++++++--------- refspec.h | 3 ++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/refspec.c b/refspec.c index af9d0d4b3..ab37b5ba1 100644 --- a/refspec.c +++ b/refspec.c @@ -146,15 +146,6 @@ static struct refspec_item *parse_refspec_internal(int nr_refspec, const char ** die("Invalid refspec '%s'", refspec[i]); } -int valid_fetch_refspec(const char *fetch_refspec_str) -{ - struct refspec_item *refspec; - - refspec = parse_refspec_internal(1, &fetch_refspec_str, 1, 1); - free_refspec(1, refspec); - return !!refspec; -} - struct refspec_item *parse_fetch_refspec(int nr_refspec, const char **refspec) { return parse_refspec_internal(nr_refspec, refspec, 1, 0); @@ -242,3 +233,11 @@ void refspec_clear(struct refspec *rs) rs->fetch = 0; } + +int valid_fetch_refspec(const char *fetch_refspec_str) +{ + struct refspec_item refspec; + int ret = parse_refspec(&refspec, fetch_refspec_str, REFSPEC_FETCH); + refspec_item_clear(&refspec); + return ret; +} diff --git a/refspec.h b/refspec.h index da3135825..1063c64cc 100644 --- a/refspec.h +++ b/refspec.h @@ -14,7 +14,6 @@ struct refspec_item { char *dst; }; -int valid_fetch_refspec(const char *refspec); struct refspec_item *parse_fetch_refspec(int nr_refspec, const char **refspec); struct refspec_item *parse_push_refspec(int nr_refspec, const char **refspec); @@ -45,4 +44,6 @@ void refspec_append(struct refspec *rs, const char *refspec); void refspec_appendn(struct refspec *rs, const char **refspecs, int nr); void refspec_clear(struct refspec *rs); +int valid_fetch_refspec(const char *refspec); + #endif /* REFSPEC_H */ -- 2.17.0.441.gb46fe60e1d-goog