diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-04-01 21:38:53 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-04-01 21:38:53 +0200 |
commit | ca51cc0a335d0c449784440501c7d46ee8f84ce4 (patch) | |
tree | d55f7f7a04a28baa10376338ce08f678a9c860dd | |
parent | d877a5700fe9d5b92562514924549316382384aa (diff) | |
download | vim-git-ca51cc0a335d0c449784440501c7d46ee8f84ce4.tar.gz |
patch 8.2.2688: Vim9: crash when using s: for script variablev8.2.2688
Problem: Vim9: crash when using s: for script variable.
Solution: Pass the end pointer. (closes #8045)
-rw-r--r-- | src/testdir/test_vim9_script.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 0d49a42d9..cb1592abf 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1644,9 +1644,10 @@ def Test_vim9script_funcref() # using the function from a compiled function def TestMore(): string - return anAlias.GetString('text') + var s = s:anAlias.GetString('foo') + return s .. anAlias.GetString('bar') enddef - assert_equal('text', TestMore()) + assert_equal('foobar', TestMore()) # error when using a function that isn't exported assert_fails('anAlias.Compare(1, 2)', 'E1049:') diff --git a/src/version.c b/src/version.c index 0fb8bc352..7da1fc4fa 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2688, +/**/ 2687, /**/ 2686, diff --git a/src/vim9compile.c b/src/vim9compile.c index ca1c89cc1..3fb4a8d20 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -2822,7 +2822,7 @@ compile_load( case 'v': res = generate_LOADV(cctx, name, error); break; case 's': res = compile_load_scriptvar(cctx, name, - NULL, NULL, error); + NULL, &end, error); break; case 'g': if (vim_strchr(name, AUTOLOAD_CHAR) == NULL) isn_type = ISN_LOADG; |