changeset 30327:7fde373affbf v9.0.0499

patch 9.0.0499: in :def function list created after const is locked Commit: https://github.com/vim/vim/commit/566badc76ba7c0fbdc75e62f79486182304fc7cc Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 18 13:46:08 2022 +0100 patch 9.0.0499: in :def function list created after const is locked Problem: In :def function list created after const is locked. Solution: Reset v_lock. (closes https://github.com/vim/vim/issues/11154)
author Bram Moolenaar <Bram@vim.org>
date Sun, 18 Sep 2022 15:00:02 +0200
parents 11405d5fc78f
children 60f24e323057
files src/testdir/test_vim9_assign.vim src/version.c src/vim9execute.c
diffstat 3 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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,
--- 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;