diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-07-30 22:32:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-07-30 22:32:11 +0200 |
commit | 3ab14355ed93958433eec58e96ec9bd9a472f2b2 (patch) | |
tree | 4d97203b53b3d1e6179a8a1c60f923fac6f5b617 | |
parent | 1e2258297bb31720bfbeb234f2dae4d1b3b04fbd (diff) | |
download | vim-git-3ab14355ed93958433eec58e96ec9bd9a472f2b2.tar.gz |
patch 7.4.2129v7.4.2129
Problem: Memory leak when using timer_start(). (Dominique Pelle)
Solution: Don't copy the callback when using a partial.
-rw-r--r-- | src/evalfunc.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index f66584242..9905d0ba7 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -11931,7 +11931,11 @@ f_timer_start(typval_T *argvars, typval_T *rettv) } else { - timer->tr_callback = vim_strsave(callback); + if (timer->tr_partial == NULL) + timer->tr_callback = vim_strsave(callback); + else + /* pointer into the partial */ + timer->tr_callback = callback; rettv->vval.v_number = timer->tr_id; } } diff --git a/src/version.c b/src/version.c index 05df68e58..90953555f 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2129, +/**/ 2128, /**/ 2127, |