vim-patch:8.2.1971: memory leak when map() fails

Problem:    Memory leak when map() fails.
Solution:   Clear the typval.

c56936e2ba

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2023-08-17 10:44:32 +08:00
parent 8cbb2477cf
commit bc0c7dde17

View File

@@ -5217,8 +5217,11 @@ static void filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap
} }
vimvars[VV_KEY].vv_nr = idx; vimvars[VV_KEY].vv_nr = idx;
typval_T newtv; typval_T newtv;
if (filter_map_one(TV_LIST_ITEM_TV(li), expr, filtermap, &newtv, &rem) == FAIL if (filter_map_one(TV_LIST_ITEM_TV(li), expr, filtermap, &newtv, &rem) == FAIL) {
|| did_emsg) { break;
}
if (did_emsg) {
tv_clear(&newtv);
break; break;
} }
if (filtermap == FILTERMAP_MAP) { if (filtermap == FILTERMAP_MAP) {