зеркало из https://github.com/microsoft/git.git
ref-filter API user: add and use a ref_sorting_release()
Add a ref_sorting_release() and use it for some of the current API users, the ref_sorting_default() function and its siblings will do a malloc() which wasn't being free'd previously. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
37766b61cd
Коммит
e5fb028688
|
@ -96,6 +96,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
|
|||
ref_array_clear(&array);
|
||||
free_commit_list(filter.with_commit);
|
||||
free_commit_list(filter.no_commit);
|
||||
UNLEAK(sorting);
|
||||
ref_sorting_release(sorting);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -630,6 +630,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
|
|||
find_unique_abbrev(&prev, DEFAULT_ABBREV));
|
||||
|
||||
cleanup:
|
||||
ref_sorting_release(sorting);
|
||||
strbuf_release(&buf);
|
||||
strbuf_release(&ref);
|
||||
strbuf_release(&reflog_msg);
|
||||
|
|
|
@ -2705,6 +2705,15 @@ int parse_opt_ref_sorting(const struct option *opt, const char *arg, int unset)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void ref_sorting_release(struct ref_sorting *sorting)
|
||||
{
|
||||
while (sorting) {
|
||||
struct ref_sorting *next = sorting->next;
|
||||
free(sorting);
|
||||
sorting = next;
|
||||
}
|
||||
}
|
||||
|
||||
int parse_opt_merge_filter(const struct option *opt, const char *arg, int unset)
|
||||
{
|
||||
struct ref_filter *rf = opt->value;
|
||||
|
|
|
@ -127,6 +127,8 @@ void parse_ref_sorting(struct ref_sorting **sorting_tail, const char *atom);
|
|||
int parse_opt_ref_sorting(const struct option *opt, const char *arg, int unset);
|
||||
/* Default sort option based on refname */
|
||||
struct ref_sorting *ref_default_sorting(void);
|
||||
/* Release a "struct ref_sorting" */
|
||||
void ref_sorting_release(struct ref_sorting *);
|
||||
/* Function to parse --merged and --no-merged options */
|
||||
int parse_opt_merge_filter(const struct option *opt, const char *arg, int unset);
|
||||
/* Get the current HEAD's description */
|
||||
|
|
Загрузка…
Ссылка в новой задаче