diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/eval.c | 6 | ||||
| -rw-r--r-- | src/nvim/globals.h | 4 | ||||
| -rw-r--r-- | src/nvim/memory.c | 8 | ||||
| -rw-r--r-- | src/nvim/version.c | 2 | 
4 files changed, 10 insertions, 10 deletions
| 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);      } diff --git a/src/nvim/globals.h b/src/nvim/globals.h index fbffc2d44d..bc98971c0b 100644 --- a/src/nvim/globals.h +++ b/src/nvim/globals.h @@ -636,6 +636,10 @@ EXTERN int exiting INIT(= FALSE);  /* TRUE when planning to exit Vim.  Might   * still keep on running if there is a changed   * buffer. */ +#if defined(EXITFREE) +// true when in or after free_all_mem() +EXTERN bool entered_free_all_mem INIT(= false); +#endif  /* volatile because it is used in signal handler deathtrap(). */  EXTERN volatile int full_screen INIT(= FALSE);  /* TRUE when doing full-screen output diff --git a/src/nvim/memory.c b/src/nvim/memory.c index 63914f3a46..ca6aa6381d 100644 --- a/src/nvim/memory.c +++ b/src/nvim/memory.c @@ -488,16 +488,12 @@ void time_to_bytes(time_t time_, uint8_t buf[8])  void free_all_mem(void)  {    buf_T       *buf, *nextbuf; -  static bool entered = false;    /* When we cause a crash here it is caught and Vim tries to exit cleanly.     * Don't try freeing everything again. */ -  if (entered) +  if (entered_free_all_mem)      return; -  entered = true; - -  // Set this flag to indicate some errors can be ignored. -  really_exiting = true; +  entered_free_all_mem = 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 7244a53606..61ffb1cae6 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -572,7 +572,7 @@ static int included_patches[] = {    1871,    // 1870 NA    // 1869 NA -  // 1868, +  1868,    1867,    1866,    // 1865 NA | 
