patch 8.2.1333: Vim9: memory leak when using nested global function
Problem: Vim9: memory leak when using nested global function.
Solution: Swap from and to when copying the lines.
diff --git a/src/userfunc.c b/src/userfunc.c
index cdce005..4c1e261 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1188,10 +1188,10 @@
fp->uf_flags = (ufunc->uf_flags & ~FC_VIM9) | FC_COPY;
fp->uf_def_status = ufunc->uf_def_status;
fp->uf_dfunc_idx = ufunc->uf_dfunc_idx;
- if (ga_copy_strings(&fp->uf_args, &ufunc->uf_args) == FAIL
- || ga_copy_strings(&fp->uf_def_args, &ufunc->uf_def_args)
+ if (ga_copy_strings(&ufunc->uf_args, &fp->uf_args) == FAIL
+ || ga_copy_strings(&ufunc->uf_def_args, &fp->uf_def_args)
== FAIL
- || ga_copy_strings(&fp->uf_lines, &ufunc->uf_lines) == FAIL)
+ || ga_copy_strings(&ufunc->uf_lines, &fp->uf_lines) == FAIL)
goto failed;
fp->uf_name_exp = ufunc->uf_name_exp == NULL ? NULL