comparison src/userfunc.c @ 21566:1e3e5058041c v8.2.1333

patch 8.2.1333: Vim9: memory leak when using nested global function Commit: https://github.com/vim/vim/commit/af8edbb8dc551aaf2105a4d77b3d8495da239ef0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 1 00:03:09 2020 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 01 Aug 2020 00:15:04 +0200
parents 30a997217524
children 5470c36ed7e6
comparison
equal deleted inserted replaced
21565:a0fbaf68d30e 21566:1e3e5058041c
1186 1186
1187 fp->uf_varargs = ufunc->uf_varargs; 1187 fp->uf_varargs = ufunc->uf_varargs;
1188 fp->uf_flags = (ufunc->uf_flags & ~FC_VIM9) | FC_COPY; 1188 fp->uf_flags = (ufunc->uf_flags & ~FC_VIM9) | FC_COPY;
1189 fp->uf_def_status = ufunc->uf_def_status; 1189 fp->uf_def_status = ufunc->uf_def_status;
1190 fp->uf_dfunc_idx = ufunc->uf_dfunc_idx; 1190 fp->uf_dfunc_idx = ufunc->uf_dfunc_idx;
1191 if (ga_copy_strings(&fp->uf_args, &ufunc->uf_args) == FAIL 1191 if (ga_copy_strings(&ufunc->uf_args, &fp->uf_args) == FAIL
1192 || ga_copy_strings(&fp->uf_def_args, &ufunc->uf_def_args) 1192 || ga_copy_strings(&ufunc->uf_def_args, &fp->uf_def_args)
1193 == FAIL 1193 == FAIL
1194 || ga_copy_strings(&fp->uf_lines, &ufunc->uf_lines) == FAIL) 1194 || ga_copy_strings(&ufunc->uf_lines, &fp->uf_lines) == FAIL)
1195 goto failed; 1195 goto failed;
1196 1196
1197 fp->uf_name_exp = ufunc->uf_name_exp == NULL ? NULL 1197 fp->uf_name_exp = ufunc->uf_name_exp == NULL ? NULL
1198 : vim_strsave(ufunc->uf_name_exp); 1198 : vim_strsave(ufunc->uf_name_exp);
1199 if (ufunc->uf_arg_types != NULL) 1199 if (ufunc->uf_arg_types != NULL)