diff src/userfunc.c @ 19685:d64f403289db v8.2.0399

patch 8.2.0399: various memory leaks Commit: https://github.com/vim/vim/commit/292b90d4fa11022661f449dd3efb73d5ac737313 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 18 15:23:16 2020 +0100 patch 8.2.0399: various memory leaks Problem: Various memory leaks. Solution: Avoid the leaks. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/5803)
author Bram Moolenaar <Bram@vim.org>
date Wed, 18 Mar 2020 15:30:04 +0100
parents aae19dd172c0
children 293a22b677a8
line wrap: on
line diff
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -942,6 +942,8 @@ func_clear_items(ufunc_T *fp)
     ga_clear_strings(&(fp->uf_lines));
     VIM_CLEAR(fp->uf_name_exp);
     VIM_CLEAR(fp->uf_arg_types);
+    VIM_CLEAR(fp->uf_def_arg_idx);
+    VIM_CLEAR(fp->uf_va_name);
     ga_clear(&fp->uf_type_list);
 #ifdef FEAT_PROFILE
     VIM_CLEAR(fp->uf_tml_count);
@@ -3086,11 +3088,11 @@ ex_function(exarg_T *eap)
 
 erret:
     ga_clear_strings(&newargs);
-    ga_clear_strings(&argtypes);
     ga_clear_strings(&default_args);
 errret_2:
     ga_clear_strings(&newlines);
 ret_free:
+    ga_clear_strings(&argtypes);
     vim_free(skip_until);
     vim_free(line_to_free);
     vim_free(fudi.fd_newkey);