summaryrefslogtreecommitdiff
path: root/src/userfunc.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-24 20:34:03 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-24 20:34:03 +0200
commitb171fb179053fa631fec74911b5fb9374cb6a8a1 (patch)
treec45ae9287bf07033cc4f3bf43529b7548ba432c9 /src/userfunc.c
parent9d40c63c7dc8c3eb3886c58dcd334bc7f37eceba (diff)
downloadvim-git-b171fb179053fa631fec74911b5fb9374cb6a8a1.tar.gz
patch 8.2.1049: Vim9: leaking memory when using continuation linev8.2.1049
Problem: Vim9: leaking memory when using continuation line. Solution: Keep a pointer to the continuation line in evalarg_T. Centralize checking for a next command.
Diffstat (limited to 'src/userfunc.c')
-rw-r--r--src/userfunc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/userfunc.c b/src/userfunc.c
index a27c68d04..c6a8a8cd3 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -3716,7 +3716,7 @@ ex_return(exarg_T *eap)
eap->nextcmd = NULL;
if ((*arg != NUL && *arg != '|' && *arg != '\n')
- && eval0(arg, &rettv, &eap->nextcmd, &evalarg) != FAIL)
+ && eval0(arg, &rettv, eap, &evalarg) != FAIL)
{
if (!eap->skip)
returning = do_return(eap, FALSE, TRUE, &rettv);
@@ -3773,7 +3773,7 @@ ex_call(exarg_T *eap)
// instead to skip to any following command, e.g. for:
// :if 0 | call dict.foo().bar() | endif
++emsg_skip;
- if (eval0(eap->arg, &rettv, &eap->nextcmd, NULL) != FAIL)
+ if (eval0(eap->arg, &rettv, eap, NULL) != FAIL)
clear_tv(&rettv);
--emsg_skip;
return;