diff options
| author | Michael Ennen <mike.ennen@gmail.com> | 2016-10-30 15:10:11 -0700 |
|---|---|---|
| committer | James McCoy <jamessan@jamessan.com> | 2016-12-12 10:17:35 -0500 |
| commit | 25438f149fda66375ed54a735e4477f3f4d87338 (patch) | |
| tree | f36858650c2adeee6e2b6aa1f305badf054614f1 /src/nvim/testdir/test_partial.vim | |
| parent | e97e24c77e70ec8bdaca51b0b477ca0c38ea35e0 (diff) | |
| download | rneovim-25438f149fda66375ed54a735e4477f3f4d87338.tar.gz rneovim-25438f149fda66375ed54a735e4477f3f4d87338.tar.bz2 rneovim-25438f149fda66375ed54a735e4477f3f4d87338.zip | |
vim-patch:7.4.1719
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
Diffstat (limited to 'src/nvim/testdir/test_partial.vim')
| -rw-r--r-- | src/nvim/testdir/test_partial.vim | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/nvim/testdir/test_partial.vim b/src/nvim/testdir/test_partial.vim index b5909910c7..7562c7fd2a 100644 --- a/src/nvim/testdir/test_partial.vim +++ b/src/nvim/testdir/test_partial.vim @@ -193,7 +193,7 @@ func Test_redefine_dict_func() endtry endfunc -" This causes double free on exit if EXITFREE is defined. +" This caused double free on exit if EXITFREE is defined. func Test_cyclic_list_arg() let l = [] let Pt = function('string', [l]) @@ -202,7 +202,7 @@ func Test_cyclic_list_arg() unlet Pt endfunc -" This causes double free on exit if EXITFREE is defined. +" This caused double free on exit if EXITFREE is defined. func Test_cyclic_dict_arg() let d = {} let Pt = function('string', [d]) @@ -211,6 +211,21 @@ func Test_cyclic_dict_arg() unlet Pt endfunc +func Ignored(job1, job2, status) +endfunc + +" func Test_cycle_partial_job() +" let job = job_start('echo') +" call job_setoptions(job, {'exit_cb': function('Ignored', [job])}) +" unlet job +" endfunc + +" func Test_ref_job_partial_dict() +" let g:ref_job = job_start('echo') +" let d = {'a': 'b'} +" call job_setoptions(g:ref_job, {'exit_cb': function('string', [], d)}) +" endfunc + func Test_auto_partial_rebind() let dict1 = {'name': 'dict1'} func! dict1.f1() |