зеркало из https://github.com/microsoft/git.git
userdiff: add xdiff_clear_find_func()
xdiff_set_find_func() is used to set user defined regular expressions for finding function signatures. Add xdiff_clear_find_func(), which frees the memory allocated by the former, making the API complete. Also, use the new function in diff.c (the only call site of xdiff_set_find_func()) to clean up after ourselves. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
725cf7b45d
Коммит
8cfe5f1cd5
1
diff.c
1
diff.c
|
@ -1603,6 +1603,7 @@ static void builtin_diff(const char *name_a,
|
|||
free(mf1.ptr);
|
||||
if (textconv_two)
|
||||
free(mf2.ptr);
|
||||
xdiff_clear_find_func(&xecfg);
|
||||
}
|
||||
|
||||
free_ab_and_return:
|
||||
|
|
|
@ -309,6 +309,21 @@ void xdiff_set_find_func(xdemitconf_t *xecfg, const char *value, int cflags)
|
|||
}
|
||||
}
|
||||
|
||||
void xdiff_clear_find_func(xdemitconf_t *xecfg)
|
||||
{
|
||||
if (xecfg->find_func) {
|
||||
int i;
|
||||
struct ff_regs *regs = xecfg->find_func_priv;
|
||||
|
||||
for (i = 0; i < regs->nr; i++)
|
||||
regfree(®s->array[i].re);
|
||||
free(regs->array);
|
||||
free(regs);
|
||||
xecfg->find_func = NULL;
|
||||
xecfg->find_func_priv = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
int git_xmerge_style = -1;
|
||||
|
||||
int git_xmerge_config(const char *var, const char *value, void *cb)
|
||||
|
|
|
@ -21,6 +21,7 @@ int read_mmfile(mmfile_t *ptr, const char *filename);
|
|||
int buffer_is_binary(const char *ptr, unsigned long size);
|
||||
|
||||
extern void xdiff_set_find_func(xdemitconf_t *xecfg, const char *line, int cflags);
|
||||
extern void xdiff_clear_find_func(xdemitconf_t *xecfg);
|
||||
extern int git_xmerge_config(const char *var, const char *value, void *cb);
|
||||
extern int git_xmerge_style;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче