1
0
forked from aniani/vim

patch 8.2.1049: Vim9: leaking memory when using continuation line

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.
This commit is contained in:
Bram Moolenaar
2020-06-24 20:34:03 +02:00
parent 9d40c63c7d
commit b171fb1790
23 changed files with 90 additions and 55 deletions

View File

@@ -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;