diff options
| author | James McCoy <jamessan@jamessan.com> | 2017-01-01 22:34:17 -0500 | 
|---|---|---|
| committer | James McCoy <jamessan@jamessan.com> | 2017-01-01 23:20:24 -0500 | 
| commit | 1feaa450cb024a4cd4eb3ae7ab7e5db683909488 (patch) | |
| tree | b4a2ba8ffb8450f9227a0d9ce0bd2989bb075e3a /src | |
| parent | c5f4b92ff93a40ec4e77b78d0576903e7a60eefd (diff) | |
| download | rneovim-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.c | 5 | ||||
| -rw-r--r-- | src/nvim/memory.c | 3 | ||||
| -rw-r--r-- | src/nvim/version.c | 2 | 
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 | 
