mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -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);
|
||||
|
||||
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
|
||||
|
||||
/*
|
||||
|
@@ -4188,6 +4188,7 @@ open_cmdwin(void)
|
||||
if (win_split((int)p_cwh, WSP_BOT) == FAIL)
|
||||
{
|
||||
beep_flush();
|
||||
ga_clear(&winsizes);
|
||||
return K_IGNORE;
|
||||
}
|
||||
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 (menu->strings[bit] != NULL)
|
||||
{
|
||||
char_u *tofree = NULL;
|
||||
|
||||
status = dict_add_string(dict, "rhs",
|
||||
*menu->strings[bit] == NUL
|
||||
? vim_strsave((char_u *)"<Nop>")
|
||||
: str2special_save(menu->strings[bit], FALSE));
|
||||
? (char_u *)"<Nop>"
|
||||
: (tofree = str2special_save(
|
||||
menu->strings[bit], FALSE)));
|
||||
vim_free(tofree);
|
||||
}
|
||||
if (status == OK)
|
||||
status = dict_add_bool(dict, "noremenu",
|
||||
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);
|
||||
|
||||
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.
|
||||
*ret_sid = sid;
|
||||
return OK;
|
||||
retval = OK;
|
||||
goto theend;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -942,6 +942,8 @@ func_clear_items(ufunc_T *fp)
|
||||
ga_clear_strings(&(fp->uf_lines));
|
||||
VIM_CLEAR(fp->uf_name_exp);
|
||||
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);
|
||||
#ifdef FEAT_PROFILE
|
||||
VIM_CLEAR(fp->uf_tml_count);
|
||||
@@ -3086,11 +3088,11 @@ ex_function(exarg_T *eap)
|
||||
|
||||
erret:
|
||||
ga_clear_strings(&newargs);
|
||||
ga_clear_strings(&argtypes);
|
||||
ga_clear_strings(&default_args);
|
||||
errret_2:
|
||||
ga_clear_strings(&newlines);
|
||||
ret_free:
|
||||
ga_clear_strings(&argtypes);
|
||||
vim_free(skip_until);
|
||||
vim_free(line_to_free);
|
||||
vim_free(fudi.fd_newkey);
|
||||
|
@@ -738,6 +738,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
399,
|
||||
/**/
|
||||
398,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user