# HG changeset patch # User Christian Brabandt # Date 1518273907 -3600 # Node ID fee03d646e42cd0b3f9d0a157a1700da5aa5297d # Parent 6f7bfbf0f2374c25ad8447cfa654ac63176eee86 patch 8.0.1492: memory leak in balloon_split() commit https://github.com/vim/vim/commit/b301f6b950975b9d7ae87a4f551b32bba63ccdcf Author: Bram Moolenaar Date: Sat Feb 10 15:38:35 2018 +0100 patch 8.0.1492: memory leak in balloon_split() Problem: Memory leak in balloon_split(). Solution: Free the balloon lines. Free the balloon when exiting. diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1447,6 +1447,8 @@ f_balloon_split(typval_T *argvars, typva /* Skip the first and last item, they are always empty. */ for (i = 1; i < size - 1; ++i) list_append_string(rettv->vval.v_list, array[i].pum_text, -1); + while (size > 0) + vim_free(array[--size].pum_text); vim_free(array); } } diff --git a/src/misc2.c b/src/misc2.c --- a/src/misc2.c +++ b/src/misc2.c @@ -1116,6 +1116,10 @@ free_all_mem(void) spell_free_all(); # endif +#if defined(FEAT_INS_EXPAND) && defined(FEAT_BEVAL_TERM) + ui_remove_balloon(); +# endif + # if defined(FEAT_USR_CMDS) /* Clear user commands (before deleting buffers). */ ex_comclear(NULL); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1492, +/**/ 1491, /**/ 1490,