diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-10-18 23:32:13 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-10-18 23:32:13 +0200 |
commit | 2ea79ad83584f5d668adfb935be67ee0e0e9995b (patch) | |
tree | d4b994fc48309cfb9bfafd0169a46ac39e36ea3d | |
parent | a2c026d0fd470d68d679616fddfc285cb4834412 (diff) | |
download | vim-git-2ea79ad83584f5d668adfb935be67ee0e0e9995b.tar.gz |
patch 8.2.1862: vim9: memory leak when compiling lambda failsv8.2.1862
Problem: vim9: memory leak when compiling lambda fails.
Solution: Call clear_evalarg().
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c index 5a5344315..2e6bb9833 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1862, +/**/ 1861, /**/ 1860, diff --git a/src/vim9compile.c b/src/vim9compile.c index edfa32566..55368d1b5 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -2692,7 +2692,10 @@ compile_lambda(char_u **arg, cctx_T *cctx) // Get the funcref in "rettv". if (get_lambda_tv(arg, &rettv, &evalarg) != OK) + { + clear_evalarg(&evalarg, NULL); return FAIL; + } ufunc = rettv.vval.v_partial->pt_func; ++ufunc->uf_refcount; |