summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-30 22:32:11 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-30 22:32:11 +0200
commit3ab14355ed93958433eec58e96ec9bd9a472f2b2 (patch)
tree4d97203b53b3d1e6179a8a1c60f923fac6f5b617
parent1e2258297bb31720bfbeb234f2dae4d1b3b04fbd (diff)
downloadvim-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.c6
-rw-r--r--src/version.c2
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,