Mercurial > vim
changeset 22848:e4fbe8d1bde9 v8.2.1971
patch 8.2.1971: memory leak when map() fails
Commit: https://github.com/vim/vim/commit/c56936e2ba4fd219f56aab616fcb283132455697
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 10 11:43:56 2020 +0100
patch 8.2.1971: memory leak when map() fails
Problem: Memory leak when map() fails.
Solution: Clear the typval.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 10 Nov 2020 11:45:05 +0100 |
parents | 4d9b91d6e29a |
children | cd13664ff526 |
files | src/list.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/list.c +++ b/src/list.c @@ -2185,8 +2185,13 @@ filter_map(typval_T *argvars, typval_T * nli = li->li_next; set_vim_var_nr(VV_KEY, idx); if (filter_map_one(&li->li_tv, expr, filtermap, - &newtv, &rem) == FAIL || did_emsg) + &newtv, &rem) == FAIL) break; + if (did_emsg) + { + clear_tv(&newtv); + break; + } if (filtermap == FILTERMAP_MAP) { // map(): replace the list item value