mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
patch 8.2.2537: Vim9: crash when map() fails
Problem: Vim9: crash when map() fails. Solution: Clear typval before using it. (closes #7884)
This commit is contained in:
@@ -2145,6 +2145,7 @@ filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap)
|
||||
arg_errmsg, TRUE)))
|
||||
break;
|
||||
set_vim_var_string(VV_KEY, di->di_key, -1);
|
||||
newtv.v_type = VAR_UNKNOWN;
|
||||
r = filter_map_one(&di->di_tv, expr, filtermap,
|
||||
&newtv, &rem);
|
||||
clear_tv(get_vim_var_tv(VV_KEY));
|
||||
|
@@ -690,6 +690,27 @@ def Test_maparg_mapset()
|
||||
nunmap <F3>
|
||||
enddef
|
||||
|
||||
def Test_map_failure()
|
||||
CheckFeature job
|
||||
|
||||
var lines =<< trim END
|
||||
vim9script
|
||||
writefile([], 'Xtmpfile')
|
||||
silent e Xtmpfile
|
||||
var d = {[bufnr('%')]: {a: 0}}
|
||||
au BufReadPost * Func()
|
||||
def Func()
|
||||
if d->has_key('')
|
||||
endif
|
||||
eval d[expand('<abuf>')]->mapnew((_, v: dict<job>) => 0)
|
||||
enddef
|
||||
e
|
||||
END
|
||||
CheckScriptFailure(lines, 'E1013:')
|
||||
au! BufReadPost
|
||||
delete('Xtmpfile')
|
||||
enddef
|
||||
|
||||
def Test_max()
|
||||
g:flag = true
|
||||
var l1: list<number> = g:flag
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2537,
|
||||
/**/
|
||||
2536,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user