From 1feaa450cb024a4cd4eb3ae7ab7e5db683909488 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sun, 1 Jan 2017 22:34:17 -0500 Subject: vim-patch:7.4.1866 Problem: Invalid memory access when exiting with EXITFREE defined. (Dominique Pelle) Solution: Set "really_exiting" and skip error messages. https://github.com/vim/vim/commit/a96732150cda2f242133228579b05437a39b8daa This fails to build, due to a00c2e0ecbaec366364cecb5efbdb456c8c543ef removing really_exiting from globals.h, but the next commit fixes the build failure. --- src/nvim/eval.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 32e1991742..c900cf5dfb 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -21569,7 +21569,10 @@ void func_unref(char_u *name) if (name != NULL && isdigit(*name)) { fp = find_func(name); if (fp == NULL) { - EMSG2(_(e_intern2), "func_unref()"); + // Ignore when invoked through free_all_mem(). + if (!really_exiting) { + EMSG2(_(e_intern2), "func_unref()"); + } } else { user_func_unref(fp); } -- cgit From 945540b7825e2909d17d8b8867330c3ace7c759c Mon Sep 17 00:00:00 2001 From: James McCoy Date: Sun, 1 Jan 2017 22:47:55 -0500 Subject: vim-patch:7.4.1868 Problem: Setting really_exiting causes memory leaks to be reported. Solution: Add the in_free_all_mem flag. https://github.com/vim/vim/commit/b89a25f17e274dc308c584ea69a129ffbb26bc3d --- src/nvim/eval.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c900cf5dfb..f769016936 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -21569,10 +21569,10 @@ void func_unref(char_u *name) if (name != NULL && isdigit(*name)) { fp = find_func(name); if (fp == NULL) { - // Ignore when invoked through free_all_mem(). - if (!really_exiting) { +#ifdef EXITFREE + if (!entered_free_all_mem) +#endif EMSG2(_(e_intern2), "func_unref()"); - } } else { user_func_unref(fp); } -- cgit