aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-02-03 10:15:09 +0800
committerzeertzjq <zeertzjq@outlook.com>2025-02-03 11:14:17 +0800
commitcd42740245b5dd25ef9c7e116656d6da630f5db0 (patch)
tree6a557541051d87416c5b43b655ef2bc7c17772b2
parent0309d3fbf0edc5ac958964f85dff76719340c4c7 (diff)
downloadrneovim-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.c3
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);
}