Mercurial > vim
comparison src/testdir/test34.in @ 2179:cd6e6876308e v7.2.440
updated for version 7.2.440
Problem: Calling a function through a funcref, where the function deletes
the funcref, leads to an invalid memory access.
Solution: Make a copy of the function name. (Lech Lorens)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 28 May 2010 22:06:46 +0200 |
parents | b63792dadc23 |
children | 085f14642fe8 |
comparison
equal
deleted
inserted
replaced
2177:ea7c2d89b76b | 2179:cd6e6876308e |
---|---|
33 :endfunc | 33 :endfunc |
34 :func ListReset() | 34 :func ListReset() |
35 : let g:counter = 0 | 35 : let g:counter = 0 |
36 : return '' | 36 : return '' |
37 :endfunc | 37 :endfunc |
38 :func FuncWithRef(a) | |
39 : unlet g:FuncRef | |
40 : return a:a | |
41 :endfunc | |
42 :let g:FuncRef=function("FuncWithRef") | |
38 :let counter = 0 | 43 :let counter = 0 |
39 :inoremap <expr> ( ListItem() | 44 :inoremap <expr> ( ListItem() |
40 :inoremap <expr> [ ListReset() | 45 :inoremap <expr> [ ListReset() |
41 :imap <expr> + Expr1() | 46 :imap <expr> + Expr1() |
42 :imap <expr> * Expr2() | 47 :imap <expr> * Expr2() |
45 C=Table("xxx", 4, "asdf") | 50 C=Table("xxx", 4, "asdf") |
46 =Compute(45, 0, "retval") | 51 =Compute(45, 0, "retval") |
47 =retval | 52 =retval |
48 =Compute(45, 5, "retval") | 53 =Compute(45, 5, "retval") |
49 =retval | 54 =retval |
55 =g:FuncRef(333) | |
50 | 56 |
51 XX+-XX | 57 XX+-XX |
52 ---*--- | 58 ---*--- |
53 (one | 59 (one |
54 (two | 60 (two |