patch 8.2.2786: Vim9: memory leak when using :s with expression
Problem: Vim9: memory leak when using :s with expression.
Solution: Clean up the instruction list.
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 027f79d..0695879 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -9416,8 +9416,15 @@
break;
case ISN_SUBSTITUTE:
- vim_free(isn->isn_arg.subs.subs_cmd);
- vim_free(isn->isn_arg.subs.subs_instr);
+ {
+ int idx;
+ isn_T *list = isn->isn_arg.subs.subs_instr;
+
+ vim_free(isn->isn_arg.subs.subs_cmd);
+ for (idx = 0; list[idx].isn_type != ISN_FINISH; ++idx)
+ delete_instr(list + idx);
+ vim_free(list);
+ }
break;
case ISN_LOADS: