From b301f6b950975b9d7ae87a4f551b32bba63ccdcf Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 10 Feb 2018 15:38:35 +0100 Subject: 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. --- src/evalfunc.c | 2 ++ src/misc2.c | 4 ++++ src/version.c | 2 ++ 3 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/evalfunc.c b/src/evalfunc.c index 632b982de..4b34538b7 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1447,6 +1447,8 @@ f_balloon_split(typval_T *argvars, typval_T *rettv UNUSED) /* 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 index 368303ed9..0deccdf50 100644 --- 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 index 1bd029555..be5f864ec 100644 --- a/src/version.c +++ b/src/version.c @@ -771,6 +771,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1492, /**/ 1491, /**/ -- cgit v1.2.1