Skip to content

Commit c56936e

Browse files
committed
patch 8.2.1971: memory leak when map() fails
Problem: Memory leak when map() fails. Solution: Clear the typval.
1 parent f883508 commit c56936e

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

src/list.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2185,8 +2185,13 @@ filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap)
21852185
nli = li->li_next;
21862186
set_vim_var_nr(VV_KEY, idx);
21872187
if (filter_map_one(&li->li_tv, expr, filtermap,
2188-
&newtv, &rem) == FAIL || did_emsg)
2188+
&newtv, &rem) == FAIL)
21892189
break;
2190+
if (did_emsg)
2191+
{
2192+
clear_tv(&newtv);
2193+
break;
2194+
}
21902195
if (filtermap == FILTERMAP_MAP)
21912196
{
21922197
// map(): replace the list item value

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,8 @@ static char *(features[]) =
750750

751751
static int included_patches[] =
752752
{ /* Add new patch number below this line */
753+
/**/
754+
1971,
753755
/**/
754756
1970,
755757
/**/

0 commit comments

Comments
 (0)