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);
|
fp = find_func(name);
|
||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
|
{
|
||||||
|
/* Ignore when invoked through free_all_mem(). */
|
||||||
|
if (!really_exiting)
|
||||||
EMSG2(_(e_intern2), "func_unref()");
|
EMSG2(_(e_intern2), "func_unref()");
|
||||||
|
}
|
||||||
else if (--fp->uf_refcount <= 0)
|
else if (--fp->uf_refcount <= 0)
|
||||||
{
|
{
|
||||||
/* Only delete it when it's not being used. Otherwise it's done
|
/* Only delete it when it's not being used. Otherwise it's done
|
||||||
|
@@ -1044,6 +1044,9 @@ free_all_mem(void)
|
|||||||
return;
|
return;
|
||||||
entered = TRUE;
|
entered = TRUE;
|
||||||
|
|
||||||
|
/* Set this flag to indicate some errors can be ignored. */
|
||||||
|
really_exiting = TRUE;
|
||||||
|
|
||||||
# ifdef FEAT_AUTOCMD
|
# ifdef FEAT_AUTOCMD
|
||||||
/* Don't want to trigger autocommands from here on. */
|
/* Don't want to trigger autocommands from here on. */
|
||||||
block_autocmds();
|
block_autocmds();
|
||||||
|
@@ -753,6 +753,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1866,
|
||||||
/**/
|
/**/
|
||||||
1865,
|
1865,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user