diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-09-18 13:46:08 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-09-18 13:46:08 +0100 |
commit | 566badc76ba7c0fbdc75e62f79486182304fc7cc (patch) | |
tree | fc104613a2535e1a23ca548390f6c7ab2a568fe4 | |
parent | 747f110420a0b0f4c2e40e00e8456f1e45b6f0de (diff) | |
download | vim-git-566badc76ba7c0fbdc75e62f79486182304fc7cc.tar.gz |
patch 9.0.0499: in :def function list created after const is lockedv9.0.0499
Problem: In :def function list created after const is locked.
Solution: Reset v_lock. (closes #11154)
-rw-r--r-- | src/testdir/test_vim9_assign.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 730212d10..3957942db 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -2023,6 +2023,13 @@ def Test_var_declaration() unlet w:FLIST enddef +def Test_create_list_after_const() + const a = 1 + g:ll = [] + assert_equal(0, islocked('g:ll')) + unlet g:ll +enddef + def Test_var_declaration_fails() var lines =<< trim END vim9script diff --git a/src/version.c b/src/version.c index 16ba3ee25..415897ae3 100644 --- a/src/version.c +++ b/src/version.c @@ -700,6 +700,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 499, +/**/ 498, /**/ 497, diff --git a/src/vim9execute.c b/src/vim9execute.c index 22dfaaa52..c2a331081 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -200,6 +200,7 @@ exe_newlist(int count, ectx_T *ectx) tv = STACK_TV_BOT(-1); tv->v_type = VAR_LIST; tv->vval.v_list = list; + tv->v_lock = 0; if (list != NULL) ++list->lv_refcount; return OK; |