This script fails with "E741: Value is locked: extend() argument".

for i in range(10000)
  function Foo{i}()
    call extend(l:, {})
  endfunction
  call Foo{i}()
endfor

funccall_T.l_vars.dv_lock is not initialized.

diff -r ca39f14c1ec3 src/eval.c
--- a/src/eval.c        Thu Jun 14 20:59:25 2012 +0200
+++ b/src/eval.c        Sat Jun 16 13:32:32 2012 +0900
@@ -19981,6 +19981,7 @@
     dictitem_T *dict_var;
 {
     hash_init(&dict->dv_hashtab);
+    dict->dv_lock = 0;
     dict->dv_refcount = DO_NOT_FREE_CNT;
     dict->dv_copyID = 0;
     dict_var->di_tv.vval.v_dict = dict;


-- 
Yukihiro Nakadaira - [email protected]

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui