diff options
| author | Junio C Hamano <gitster@pobox.com> | 2020-09-18 17:58:00 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-09-18 17:58:00 -0700 |
| commit | 21de7e9c50a10ba57d81d05bd1ecd9c4dcb5849c (patch) | |
| tree | 9e5eeeb0d31acbd23c2d7d02e9e2dd929f63c924 /refspec.c | |
| parent | 9b8074427bd2bb52d0c7ec876ebe0e6834bb69fe (diff) | |
| parent | 1af8b8c0a570ee0b12a19fdd920a3ea09fb22a75 (diff) | |
| download | git-21de7e9c50a10ba57d81d05bd1ecd9c4dcb5849c.tar.gz | |
Merge branch 'rs/refspec-leakfix'
Leakfix.
* rs/refspec-leakfix:
refspec: add and use refspec_appendf()
push: release strbufs used for refspec formatting
Diffstat (limited to 'refspec.c')
| -rw-r--r-- | refspec.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -153,7 +153,7 @@ void refspec_init(struct refspec *rs, int fetch) rs->fetch = fetch; } -void refspec_append(struct refspec *rs, const char *refspec) +static void refspec_append_nodup(struct refspec *rs, char *refspec) { struct refspec_item item; @@ -163,7 +163,21 @@ void refspec_append(struct refspec *rs, const char *refspec) rs->items[rs->nr++] = item; ALLOC_GROW(rs->raw, rs->raw_nr + 1, rs->raw_alloc); - rs->raw[rs->raw_nr++] = xstrdup(refspec); + rs->raw[rs->raw_nr++] = refspec; +} + +void refspec_append(struct refspec *rs, const char *refspec) +{ + refspec_append_nodup(rs, xstrdup(refspec)); +} + +void refspec_appendf(struct refspec *rs, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + refspec_append_nodup(rs, xstrvfmt(fmt, ap)); + va_end(ap); } void refspec_appendn(struct refspec *rs, const char **refspecs, int nr) |
