# HG changeset patch # User Bram Moolenaar # Date 1577279703 -3600 # Node ID 34aa888bf5ad91253cf87d48182c2d4c5b00f030 # Parent 81a7d27a9e8ef765aa1100e55e6a5fbb50a4a01c patch 8.2.0041: leaking memory when selecting spell suggestion Commit: https://github.com/vim/vim/commit/6c52f8237199ea09abbecdc5b89847c5889c3de1 Author: Bram Moolenaar Date: Wed Dec 25 14:13:03 2019 +0100 patch 8.2.0041: leaking memory when selecting spell suggestion Problem: Leaking memory when selecting spell suggestion. Solution: Free previous value at the right time. diff --git a/src/spellsuggest.c b/src/spellsuggest.c --- a/src/spellsuggest.c +++ b/src/spellsuggest.c @@ -540,14 +540,10 @@ spell_suggest(int count) else if (count > 0) { if (count > sug.su_ga.ga_len) - smsg(_("Sorry, only %ld suggestions"), - (long)sug.su_ga.ga_len); + smsg(_("Sorry, only %ld suggestions"), (long)sug.su_ga.ga_len); } else { - VIM_CLEAR(repl_from); - VIM_CLEAR(repl_to); - #ifdef FEAT_RIGHTLEFT // When 'rightleft' is set the list is drawn right-left. cmdmsg_rl = curwin->w_p_rl; @@ -641,6 +637,9 @@ spell_suggest(int count) if (selected > 0 && selected <= sug.su_ga.ga_len && u_save_cursor() == OK) { // Save the from and to text for :spellrepall. + VIM_CLEAR(repl_from); + VIM_CLEAR(repl_to); + stp = &SUG(sug.su_ga, selected - 1); if (sug.su_badlen > stp->st_orglen) { diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 41, +/**/ 40, /**/ 39,