From 497f76bfbf9d5fe951221573d23696bb9e512c0b Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 9 May 2020 16:44:22 +0200 Subject: patch 8.2.0721: Vim9: leaking memory when skipping Problem: Vim9: leaking memory when skipping. Solution: Disable skipping in generate_ppconst(). --- src/version.c | 2 ++ src/vim9compile.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/version.c b/src/version.c index 456516f97..f51f51df9 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 721, /**/ 720, /**/ diff --git a/src/vim9compile.c b/src/vim9compile.c index 944efa197..a41972520 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -2417,11 +2417,14 @@ generate_ppconst(cctx_T *cctx, ppconst_T *ppconst) { int i; int ret = OK; + int save_skip = cctx->ctx_skip; + cctx->ctx_skip = FALSE; for (i = 0; i < ppconst->pp_used; ++i) if (generate_tv_PUSH(cctx, &ppconst->pp_tv[i]) == FAIL) ret = FAIL; ppconst->pp_used = 0; + cctx->ctx_skip = save_skip; return ret; } @@ -2754,6 +2757,7 @@ compile_call( ++ppconst->pp_used; return OK; } + clear_tv(&argvars[0]); } if (generate_ppconst(cctx, ppconst) == FAIL) -- cgit v1.2.1