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:
@@ -746,6 +746,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 */
|
||||||
|
/**/
|
||||||
|
821,
|
||||||
/**/
|
/**/
|
||||||
820,
|
820,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -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 (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;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6776,9 +6776,11 @@ erret:
|
|||||||
delete_instr(((isn_T *)instr->ga_data) + idx);
|
delete_instr(((isn_T *)instr->ga_data) + idx);
|
||||||
ga_clear(instr);
|
ga_clear(instr);
|
||||||
|
|
||||||
ufunc->uf_dfunc_idx = UF_NOT_COMPILED;
|
// if using the last entry in the table we might as well remove it
|
||||||
if (!dfunc->df_deleted)
|
if (!dfunc->df_deleted
|
||||||
|
&& ufunc->uf_dfunc_idx == def_functions.ga_len - 1)
|
||||||
--def_functions.ga_len;
|
--def_functions.ga_len;
|
||||||
|
ufunc->uf_dfunc_idx = UF_NOT_COMPILED;
|
||||||
|
|
||||||
while (cctx.ctx_scope != NULL)
|
while (cctx.ctx_scope != NULL)
|
||||||
drop_scope(&cctx);
|
drop_scope(&cctx);
|
||||||
|
Reference in New Issue
Block a user