diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-02-03 10:15:09 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2025-02-03 11:14:17 +0800 |
commit | cd42740245b5dd25ef9c7e116656d6da630f5db0 (patch) | |
tree | 6a557541051d87416c5b43b655ef2bc7c17772b2 | |
parent | 0309d3fbf0edc5ac958964f85dff76719340c4c7 (diff) | |
download | rneovim-cd42740245b5dd25ef9c7e116656d6da630f5db0.tar.gz rneovim-cd42740245b5dd25ef9c7e116656d6da630f5db0.tar.bz2 rneovim-cd42740245b5dd25ef9c7e116656d6da630f5db0.zip |
vim-patch:8.2.1445: Vim9: function expanded name is cleared when sourcing again
Problem: Vim9: function expanded name is cleared when sourcing a script
again.
Solution: Only clear the expanded name when deleting the function.
(closes vim/vim#6707)
https://github.com/vim/vim/commit/c4ce36d48698669f81ec90f7c9dc9ab8c362e538
Co-authored-by: Bram Moolenaar <Bram@vim.org>
-rw-r--r-- | src/nvim/eval/userfunc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index da91de4650..5156e431db 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -891,7 +891,6 @@ static void func_clear_items(ufunc_T *fp) ga_clear_strings(&(fp->uf_args)); ga_clear_strings(&(fp->uf_def_args)); ga_clear_strings(&(fp->uf_lines)); - XFREE_CLEAR(fp->uf_name_exp); if (fp->uf_flags & FC_LUAREF) { api_free_luaref(fp->uf_luaref); @@ -930,6 +929,8 @@ static void func_free(ufunc_T *fp) if ((fp->uf_flags & (FC_DELETED | FC_REMOVED)) == 0) { func_remove(fp); } + + XFREE_CLEAR(fp->uf_name_exp); xfree(fp); } |