patch 8.2.4225: Vim9: depth argument of :lockvar not parsed in :def function
Problem: Vim9: depth argument of :lockvar not parsed in :def function.
Solution: Parse the optional depth argument. (closes #9629)
Fix that locking doesn't work for a non-materialize list.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 1232b35..a45d7c5 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1754,7 +1754,8 @@
{
listitem_T *li = list_find(list, lidx);
- if (error_if_locked(li->li_tv.v_lock, e_cannot_change_list_item))
+ if (error_if_locked(li->li_tv.v_lock,
+ e_cannot_change_locked_list_item))
return FAIL;
// overwrite existing list item
clear_tv(&li->li_tv);
@@ -1762,7 +1763,7 @@
}
else
{
- if (error_if_locked(list->lv_lock, e_cannot_change_list))
+ if (error_if_locked(list->lv_lock, e_cannot_change_locked_list))
return FAIL;
// append to list, only fails when out of memory
if (list_append_tv(list, tv) == FAIL)