1
0
forked from aniani/vim

patch 8.1.0475: memory not freed on exit when quit in autocmd

Problem:    Memory not freed on exit when quit in autocmd.
Solution:   Remember funccal stack when executing autocmd.
This commit is contained in:
Bram Moolenaar
2018-10-14 21:41:01 +02:00
parent a16bc54503
commit 27e80c885b
8 changed files with 68 additions and 67 deletions

View File

@@ -4344,7 +4344,7 @@ do_source(
#ifdef FEAT_EVAL
sctx_T save_current_sctx;
static scid_T last_current_SID = 0;
void *save_funccalp;
funccal_entry_T funccalp_entry;
int save_debug_break_level = debug_break_level;
scriptitem_T *si = NULL;
# ifdef UNIX
@@ -4506,7 +4506,7 @@ do_source(
/* Don't use local function variables, if called from a function.
* Also starts profiling timer for nested script. */
save_funccalp = save_funccal();
save_funccal(&funccalp_entry);
/*
* Check if this script was sourced before to finds its SID.
@@ -4665,7 +4665,7 @@ do_source(
#ifdef FEAT_EVAL
almosttheend:
current_sctx = save_current_sctx;
restore_funccal(save_funccalp);
restore_funccal();
# ifdef FEAT_PROFILE
if (do_profiling == PROF_YES)
prof_child_exit(&wait_start); /* leaving a child now */