1
0
forked from aniani/vim

patch 8.2.0821: Vim9: memory leak in expr test

Problem:    Vim9: memory leak in expr test.
Solution:   Do not decrement the length of the list of functions if the
            current function is not at the end.
This commit is contained in:
Bram Moolenaar
2020-05-25 00:28:33 +02:00
parent 6ff71d8b7f
commit 45a1508a22
2 changed files with 7 additions and 3 deletions

View File

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

View File

@@ -1443,7 +1443,7 @@ generate_CALL(cctx_T *cctx, ufunc_T *ufunc, int pushed_argcount)
}
}
if (ufunc->uf_dfunc_idx == UF_TO_BE_COMPILED)
if (compile_def_function(ufunc, TRUE, cctx) == FAIL)
if (compile_def_function(ufunc, TRUE, NULL) == FAIL)
return FAIL;
}
@@ -6776,9 +6776,11 @@ erret:
delete_instr(((isn_T *)instr->ga_data) + idx);
ga_clear(instr);
ufunc->uf_dfunc_idx = UF_NOT_COMPILED;
if (!dfunc->df_deleted)
// if using the last entry in the table we might as well remove it
if (!dfunc->df_deleted
&& ufunc->uf_dfunc_idx == def_functions.ga_len - 1)
--def_functions.ga_len;
ufunc->uf_dfunc_idx = UF_NOT_COMPILED;
while (cctx.ctx_scope != NULL)
drop_scope(&cctx);