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:
@@ -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
|
||||
|
@@ -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();
|
||||
|
@@ -753,6 +753,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1866,
|
||||
/**/
|
||||
1865,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user