remote: clear string_list after use in mv()
Switch to the _DUP variant of string_list for remote_branches to allow string_list_clear() to release the allocated memory at the end, and actually call that function. Free the util pointer as well; it is allocated in read_remote_branches(). NB: This string_list is empty until read_remote_branches() is called via for_each_ref(), so there is no need to clean it up when returning before that point. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
53f9a3e157
commit
fe583c6c7a
@ -565,7 +565,7 @@ static int read_remote_branches(const char *refname,
|
|||||||
|
|
||||||
strbuf_addf(&buf, "refs/remotes/%s/", rename->old_name);
|
strbuf_addf(&buf, "refs/remotes/%s/", rename->old_name);
|
||||||
if (starts_with(refname, buf.buf)) {
|
if (starts_with(refname, buf.buf)) {
|
||||||
item = string_list_append(rename->remote_branches, xstrdup(refname));
|
item = string_list_append(rename->remote_branches, refname);
|
||||||
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
|
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
|
||||||
NULL, &flag);
|
NULL, &flag);
|
||||||
if (symref && (flag & REF_ISSYMREF))
|
if (symref && (flag & REF_ISSYMREF))
|
||||||
@ -611,7 +611,7 @@ static int mv(int argc, const char **argv)
|
|||||||
struct remote *oldremote, *newremote;
|
struct remote *oldremote, *newremote;
|
||||||
struct strbuf buf = STRBUF_INIT, buf2 = STRBUF_INIT, buf3 = STRBUF_INIT,
|
struct strbuf buf = STRBUF_INIT, buf2 = STRBUF_INIT, buf3 = STRBUF_INIT,
|
||||||
old_remote_context = STRBUF_INIT;
|
old_remote_context = STRBUF_INIT;
|
||||||
struct string_list remote_branches = STRING_LIST_INIT_NODUP;
|
struct string_list remote_branches = STRING_LIST_INIT_DUP;
|
||||||
struct rename_info rename;
|
struct rename_info rename;
|
||||||
int i, refspec_updated = 0;
|
int i, refspec_updated = 0;
|
||||||
|
|
||||||
@ -733,6 +733,7 @@ static int mv(int argc, const char **argv)
|
|||||||
if (create_symref(buf.buf, buf2.buf, buf3.buf))
|
if (create_symref(buf.buf, buf2.buf, buf3.buf))
|
||||||
die(_("creating '%s' failed"), buf.buf);
|
die(_("creating '%s' failed"), buf.buf);
|
||||||
}
|
}
|
||||||
|
string_list_clear(&remote_branches, 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user