1
0
forked from aniani/vim

patch 7.4.1866

Problem:    Invalid memory access when exiting with EXITFREE defined.
            (Dominique Pelle)
Solution:   Set "really_exiting" and skip error messages.
This commit is contained in:
Bram Moolenaar
2016-06-01 22:21:06 +02:00
parent 9ad73239c2
commit a96732150c
3 changed files with 10 additions and 1 deletions

View File

@@ -25348,7 +25348,11 @@ func_unref(char_u *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 if (--fp->uf_refcount <= 0)
{
/* Only delete it when it's not being used. Otherwise it's done

View File

@@ -1044,6 +1044,9 @@ free_all_mem(void)
return;
entered = TRUE;
/* Set this flag to indicate some errors can be ignored. */
really_exiting = TRUE;
# ifdef FEAT_AUTOCMD
/* Don't want to trigger autocommands from here on. */
block_autocmds();

View File

@@ -753,6 +753,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1866,
/**/
1865,
/**/