Commit Graph

65 Commits

Author SHA1 Message Date
Jan Edmund Lazo
2a57dce9f2 vim-patch:8.1.1319: computing function length name in many places
Problem:    Computing function length name in many places.
Solution:   compute name length in call_func().
6ed8819822

In call_func(), reassign "len" param to (int)STRLEN(funcname)
instead of using vim_strsave() which runs strlen().
"len" param is checked for v:lua functions.
call_func() states that strlen() is used if "len" is set to -1.
2020-09-30 21:00:17 -04:00
erw7
7cb38d5ac4 vim-patch:8.1.1563: crash when using closures
Problem:    Crash when using closures.
Solution:   Set reference in varlist of funccal when running the garbage
            collector. (Ozaki Kiichi, closes vim/vim#4554, closes vim/vim#4547)
6e5000d493
2020-09-30 21:00:17 -04:00
Björn Linse
5f3ddb195e lua: cleanup naming conventions of executor functions 2020-09-10 10:02:41 +02:00
Jan Edmund Lazo
1d9b146ce3 vim-patch:8.2.0607: gcc warns for using uninitialized variable
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
2bb76accc6
2020-08-19 21:38:42 -04:00
Jan Edmund Lazo
aab71dbd03 userfunc: fix pvs/v547
xcalloc() never returns NULL.
2020-08-15 10:57:17 -04:00
TJ DeVries
6360cf7ce8 lua: Add ability to pass tables with __call
vim-patch:8.2.1054: not so easy to pass a lua function to Vim
vim-patch:8.2.1084: Lua: registering function has useless code

I think I have also opened up the possibility for people to use these
callbacks elsewhere, since I've added a new struct that we should be
able to use.

Also, this should allow us to determine what the state of a list is in
Lua or a dictionary in Lua, since we now can track the luaref as we go.
2020-07-10 20:23:12 -04:00
TJ DeVries
971a191c4d lua: Add ability to pass lua functions directly to vimL 2020-07-10 16:17:33 -04:00
Jan Edmund Lazo
2298350884 vim-patch:8.1.0917: double free when running out of memory
Problem:    Double free when running out of memory.
Solution:   Remove one free. (Ken Takata, closes vim/vim#3955)
445e71c5ee
2020-06-04 20:52:52 -04:00
erw7
c3dab08c8f vim-patch:8.1.1485: double free when garbage_collect() is used in autocommand
Problem:    Double free when garbage_collect() is used in autocommand.
Solution:   Have garbage collection also set the copyID in funccal_stack.
c07f67ad0e
2020-05-25 18:52:30 +09:00
erw7
1212390254 vim-patch:8.1.1007: using closure may consume a lot of memory
Problem:    Using closure may consume a lot of memory.
Solution:   unreference items that are no longer needed. Add a test. (Ozaki
            Kiichi, closes vim/vim#3961)
209b8e3e3b
2020-05-07 16:47:41 +09:00
erw7
17f067f4b4 vim-patch:8.1.0475: memory not freed on exit when quit in autocmd
Problem:    Memory not freed on exit when quit in autocmd.
Solution:   Remember funccal stack when executing autocmd.
27e80c885b
2020-05-07 16:00:46 +09:00
Jan Edmund Lazo
a89d64b687 vim-patch:8.1.0868: crash if triggering garbage collector after a function call
Problem:    Crash if triggering garbage collector after a function call.
            (Michael Henry)
Solution:   Don't call the garbage collector right away, do it later.
            (closes vim/vim#3894)
889da2f243
2020-05-03 13:16:38 -04:00
Jan Edmund Lazo
66369cd9d0 vim-patch:8.1.0800: may use a lot of memory when a function refers itself
Problem:    May use a lot of memory when a function creates a cyclic
            reference.
Solution:   After saving a funccal many times, invoke the garbage collector.
            (closes vim/vim#3835)
4456ab527a
2020-05-03 13:16:37 -04:00
Justin M. Keyes
6b050a145d Merge #11851 'eval.c: factor out eval/userfunc.c'
vim-patch:7.4.2058
2020-04-26 20:01:58 -07:00
Jakub Łuczyński
5e815edece rename: user_funcs -> userfunc
Lets stick with vim for now
2020-02-13 14:11:55 +01:00