diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-01 00:03:09 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-01 00:03:09 +0200 |
commit | af8edbb8dc551aaf2105a4d77b3d8495da239ef0 (patch) | |
tree | c968eb7edde8e1229516ad33f7f2b927b52d2314 /src/userfunc.c | |
parent | ce6583568ff5b3e0e6438b37ede2c80bedffba10 (diff) | |
download | vim-git-af8edbb8dc551aaf2105a4d77b3d8495da239ef0.tar.gz |
patch 8.2.1333: Vim9: memory leak when using nested global functionv8.2.1333
Problem: Vim9: memory leak when using nested global function.
Solution: Swap from and to when copying the lines.
Diffstat (limited to 'src/userfunc.c')
-rw-r--r-- | src/userfunc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/userfunc.c b/src/userfunc.c index cdce00560..4c1e26195 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -1188,10 +1188,10 @@ copy_func(char_u *lambda, char_u *global) 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 |