aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2017-01-01 22:34:17 -0500
committerJames McCoy <jamessan@jamessan.com>2017-01-01 23:20:24 -0500
commit1feaa450cb024a4cd4eb3ae7ab7e5db683909488 (patch)
treeb4a2ba8ffb8450f9227a0d9ce0bd2989bb075e3a /src
parentc5f4b92ff93a40ec4e77b78d0576903e7a60eefd (diff)
downloadrneovim-1feaa450cb024a4cd4eb3ae7ab7e5db683909488.tar.gz
rneovim-1feaa450cb024a4cd4eb3ae7ab7e5db683909488.tar.bz2
rneovim-1feaa450cb024a4cd4eb3ae7ab7e5db683909488.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c5
-rw-r--r--src/nvim/memory.c3
-rw-r--r--src/nvim/version.c2
3 files changed, 8 insertions, 2 deletions
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);
}
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index 071ef335cf..63914f3a46 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -496,6 +496,9 @@ void free_all_mem(void)
return;
entered = true;
+ // Set this flag to indicate some errors can be ignored.
+ really_exiting = true;
+
// Don't want to trigger autocommands from here on.
block_autocmds();
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 9f2b7a26c3..7244a53606 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -574,7 +574,7 @@ static int included_patches[] = {
// 1869 NA
// 1868,
1867,
- // 1866,
+ 1866,
// 1865 NA
// 1864 NA
// 1863 NA