aboutsummaryrefslogtreecommitdiff
path: root/src/ex_cmds.c
diff options
context:
space:
mode:
authorMarco Hinz <mh.codebro@gmail.com>2014-04-14 16:47:00 +0200
committerThiago de Arruda <tpadilha84@gmail.com>2014-04-16 09:46:01 -0300
commitcb0adf60de98003564105169dee4bc792c56a559 (patch)
tree92549d91a2d431fafffb2ac841459ac22d94d8c0 /src/ex_cmds.c
parent40970917dcd35c8e986c3dc678bf180a2b2ddf24 (diff)
downloadrneovim-cb0adf60de98003564105169dee4bc792c56a559.tar.gz
rneovim-cb0adf60de98003564105169dee4bc792c56a559.tar.bz2
rneovim-cb0adf60de98003564105169dee4bc792c56a559.zip
vim-patch:7.4.251
Problem: Crash when BufAdd autocommand wipes out the buffer. Solution: Check for buffer to still be valid. Postpone freeing the buffer structure. (Hirohito Higashi) https://code.google.com/p/vim/source/detail?r=29eb4c2a33ac701bfcd4d2e2bed7864eba876e0e
Diffstat (limited to 'src/ex_cmds.c')
-rw-r--r--src/ex_cmds.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e3d02357e1..0779568bc8 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2774,6 +2774,11 @@ do_ecmd (
}
buf = buflist_new(ffname, sfname, 0L,
BLN_CURBUF | ((flags & ECMD_SET_HELP) ? 0 : BLN_LISTED));
+ // Autocmds may change curwin and curbuf.
+ if (oldwin != NULL) {
+ oldwin = curwin;
+ }
+ old_curbuf = curbuf;
}
if (buf == NULL)
goto theend;