patch 8.2.2279: Vim9: memory leak with catch in skipped block
Problem: Vim9: memory leak with catch in skipped block.
Solution: Free the pattern if not used.
diff --git a/src/version.c b/src/version.c
index af74bcb..a4149c6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2279,
+/**/
2278,
/**/
2277,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index bb33d38..23da8f2 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1009,7 +1009,11 @@
{
isn_T *isn;
- RETURN_OK_IF_SKIP(cctx);
+ if (cctx->ctx_skip == SKIP_YES)
+ {
+ vim_free(str);
+ return OK;
+ }
if ((isn = generate_instr_type(cctx, ISN_PUSHS, &t_string)) == NULL)
return FAIL;
isn->isn_arg.string = str;