0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.2.2953: Vim9: leaking memory when using heredoc script

Problem:    Vim9: leaking memory when using heredoc script.
Solution:   Free the first line.
This commit is contained in:
Bram Moolenaar
2021-06-06 17:34:13 +02:00
parent 99285550a9
commit 518df27ebe
2 changed files with 9 additions and 1 deletions

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2953,
/**/ /**/
2952, 2952,
/**/ /**/

View File

@@ -1460,17 +1460,23 @@ exec_instructions(ectx_T *ectx)
case ISN_EXEC_SPLIT: case ISN_EXEC_SPLIT:
{ {
source_cookie_T cookie; source_cookie_T cookie;
char_u *line;
SOURCING_LNUM = iptr->isn_lnum; SOURCING_LNUM = iptr->isn_lnum;
CLEAR_FIELD(cookie); CLEAR_FIELD(cookie);
cookie.sourcing_lnum = iptr->isn_lnum - 1; cookie.sourcing_lnum = iptr->isn_lnum - 1;
cookie.nextline = iptr->isn_arg.string; cookie.nextline = iptr->isn_arg.string;
if (do_cmdline(get_split_sourceline(0, &cookie, 0, 0), line = get_split_sourceline(0, &cookie, 0, 0);
if (do_cmdline(line,
get_split_sourceline, &cookie, get_split_sourceline, &cookie,
DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED) DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED)
== FAIL == FAIL
|| did_emsg) || did_emsg)
{
vim_free(line);
goto on_error; goto on_error;
}
vim_free(line);
} }
break; break;