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