1
0
forked from aniani/vim

patch 8.2.2364: Vim9: line break in lambda accesses freed memory

Problem:    Vim9: line break in lambda accesses freed memory.
Solution:   Make a copy of the return type. (closes #7664)
This commit is contained in:
Bram Moolenaar
2021-01-16 18:09:52 +01:00
parent 9ebcf231bd
commit f898f7c68d
3 changed files with 30 additions and 6 deletions

View File

@@ -1811,6 +1811,18 @@ enddef
def Test_line_continuation_in_lambda()
Line_continuation_in_lambda()->assert_equal(['D', 'C', 'B', 'A'])
var lines =<< trim END
vim9script
var res = [{n: 1, m: 2, s: 'xxx'}]
->mapnew((_, v: dict<any>): string => printf('%d:%d:%s',
v.n,
v.m,
substitute(v.s, '.*', 'yyy', '')
))
assert_equal(['1:2:yyy'], res)
END
CheckScriptSuccess(lines)
enddef
def Test_list_lambda()