Skip to content

Commit 26fe0d5

Browse files
committed
patch 7.4.2359
Problem: Memory leak in timer_start(). Solution: Check the right field to be NULL.
1 parent d47d837 commit 26fe0d5

3 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/evalfunc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12429,7 +12429,7 @@ f_timer_start(typval_T *argvars, typval_T *rettv)
1242912429
free_callback(callback, partial);
1243012430
else
1243112431
{
12432-
if (timer->tr_partial == NULL)
12432+
if (partial == NULL)
1243312433
timer->tr_callback = vim_strsave(callback);
1243412434
else
1243512435
/* pointer into the partial */

src/testdir/test_timers.vim

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ endfunc
4848

4949
func Test_with_partial_callback()
5050
let g:val = 0
51-
let s:meow = {}
52-
function s:meow.bite(...)
53-
let g:val += 1
51+
let meow = {'one': 1}
52+
function meow.bite(...)
53+
let g:val += self.one
5454
endfunction
5555

56-
call timer_start(50, s:meow.bite)
56+
call timer_start(50, meow.bite)
5757
let slept = WaitFor('g:val == 1')
5858
call assert_equal(1, g:val)
5959
if has('reltime')

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,8 @@ static char *(features[]) =
763763

764764
static int included_patches[] =
765765
{ /* Add new patch number below this line */
766+
/**/
767+
2359,
766768
/**/
767769
2358,
768770
/**/

0 commit comments

Comments
 (0)