mirror of
https://github.com/vim/vim.git
synced 2025-10-02 05:04:20 -04:00
patch 8.2.0399: various memory leaks
Problem: Various memory leaks. Solution: Avoid the leaks. (Ozaki Kiichi, closes #5803)
This commit is contained in:
@@ -1346,6 +1346,18 @@ do_cmdline(
|
|||||||
restore_dbg_stuff(&debug_saved);
|
restore_dbg_stuff(&debug_saved);
|
||||||
|
|
||||||
msg_list = saved_msg_list;
|
msg_list = saved_msg_list;
|
||||||
|
|
||||||
|
// Cleanup if "cs_emsg_silent_list" remains.
|
||||||
|
if (cstack.cs_emsg_silent_list != NULL)
|
||||||
|
{
|
||||||
|
eslist_T *elem, *temp;
|
||||||
|
|
||||||
|
for (elem = cstack.cs_emsg_silent_list; elem != NULL; elem = temp)
|
||||||
|
{
|
||||||
|
temp = elem->next;
|
||||||
|
vim_free(elem);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif // FEAT_EVAL
|
#endif // FEAT_EVAL
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -4188,6 +4188,7 @@ open_cmdwin(void)
|
|||||||
if (win_split((int)p_cwh, WSP_BOT) == FAIL)
|
if (win_split((int)p_cwh, WSP_BOT) == FAIL)
|
||||||
{
|
{
|
||||||
beep_flush();
|
beep_flush();
|
||||||
|
ga_clear(&winsizes);
|
||||||
return K_IGNORE;
|
return K_IGNORE;
|
||||||
}
|
}
|
||||||
cmdwin_type = get_cmdline_type();
|
cmdwin_type = get_cmdline_type();
|
||||||
|
10
src/menu.c
10
src/menu.c
@@ -2882,10 +2882,16 @@ menuitem_getinfo(vimmenu_T *menu, int modes, dict_T *dict)
|
|||||||
if (bit < MENU_MODES) // just in case, avoid Coverity warning
|
if (bit < MENU_MODES) // just in case, avoid Coverity warning
|
||||||
{
|
{
|
||||||
if (menu->strings[bit] != NULL)
|
if (menu->strings[bit] != NULL)
|
||||||
|
{
|
||||||
|
char_u *tofree = NULL;
|
||||||
|
|
||||||
status = dict_add_string(dict, "rhs",
|
status = dict_add_string(dict, "rhs",
|
||||||
*menu->strings[bit] == NUL
|
*menu->strings[bit] == NUL
|
||||||
? vim_strsave((char_u *)"<Nop>")
|
? (char_u *)"<Nop>"
|
||||||
: str2special_save(menu->strings[bit], FALSE));
|
: (tofree = str2special_save(
|
||||||
|
menu->strings[bit], FALSE)));
|
||||||
|
vim_free(tofree);
|
||||||
|
}
|
||||||
if (status == OK)
|
if (status == OK)
|
||||||
status = dict_add_bool(dict, "noremenu",
|
status = dict_add_bool(dict, "noremenu",
|
||||||
menu->noremap[bit] == REMAP_NONE);
|
menu->noremap[bit] == REMAP_NONE);
|
||||||
|
@@ -865,6 +865,7 @@ emsg_namelen(char *msg, char_u *name, int len)
|
|||||||
char_u *copy = vim_strnsave((char_u *)name, len);
|
char_u *copy = vim_strnsave((char_u *)name, len);
|
||||||
|
|
||||||
semsg(msg, copy == NULL ? "NULL" : (char *)copy);
|
semsg(msg, copy == NULL ? "NULL" : (char *)copy);
|
||||||
|
vim_free(copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1133,7 +1133,8 @@ do_source(
|
|||||||
{
|
{
|
||||||
// Already loaded and no need to load again, return here.
|
// Already loaded and no need to load again, return here.
|
||||||
*ret_sid = sid;
|
*ret_sid = sid;
|
||||||
return OK;
|
retval = OK;
|
||||||
|
goto theend;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -942,6 +942,8 @@ func_clear_items(ufunc_T *fp)
|
|||||||
ga_clear_strings(&(fp->uf_lines));
|
ga_clear_strings(&(fp->uf_lines));
|
||||||
VIM_CLEAR(fp->uf_name_exp);
|
VIM_CLEAR(fp->uf_name_exp);
|
||||||
VIM_CLEAR(fp->uf_arg_types);
|
VIM_CLEAR(fp->uf_arg_types);
|
||||||
|
VIM_CLEAR(fp->uf_def_arg_idx);
|
||||||
|
VIM_CLEAR(fp->uf_va_name);
|
||||||
ga_clear(&fp->uf_type_list);
|
ga_clear(&fp->uf_type_list);
|
||||||
#ifdef FEAT_PROFILE
|
#ifdef FEAT_PROFILE
|
||||||
VIM_CLEAR(fp->uf_tml_count);
|
VIM_CLEAR(fp->uf_tml_count);
|
||||||
@@ -3086,11 +3088,11 @@ ex_function(exarg_T *eap)
|
|||||||
|
|
||||||
erret:
|
erret:
|
||||||
ga_clear_strings(&newargs);
|
ga_clear_strings(&newargs);
|
||||||
ga_clear_strings(&argtypes);
|
|
||||||
ga_clear_strings(&default_args);
|
ga_clear_strings(&default_args);
|
||||||
errret_2:
|
errret_2:
|
||||||
ga_clear_strings(&newlines);
|
ga_clear_strings(&newlines);
|
||||||
ret_free:
|
ret_free:
|
||||||
|
ga_clear_strings(&argtypes);
|
||||||
vim_free(skip_until);
|
vim_free(skip_until);
|
||||||
vim_free(line_to_free);
|
vim_free(line_to_free);
|
||||||
vim_free(fudi.fd_newkey);
|
vim_free(fudi.fd_newkey);
|
||||||
|
@@ -738,6 +738,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
399,
|
||||||
/**/
|
/**/
|
||||||
398,
|
398,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user