mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 06:18:16 +00:00
[RFC] vim-patch:7.4.1704 (#5487)
vim-patch:7.4.1704
Problem: Using freed memory with "wincmd p". (Dominique Pelle)
Solution: Also clear "prevwin" in other tab pages.
3dda7db4e1
This commit is contained in:

committed by
James McCoy

parent
6636e2a259
commit
82f30bfeda
@@ -739,7 +739,7 @@ static int included_patches[] = {
|
|||||||
// 1707,
|
// 1707,
|
||||||
// 1706 NA
|
// 1706 NA
|
||||||
// 1705 NA
|
// 1705 NA
|
||||||
// 1704,
|
1704,
|
||||||
1703,
|
1703,
|
||||||
// 1702,
|
// 1702,
|
||||||
// 1701,
|
// 1701,
|
||||||
|
@@ -278,10 +278,11 @@ newwindow:
|
|||||||
/* cursor to last accessed (previous) window */
|
/* cursor to last accessed (previous) window */
|
||||||
case 'p':
|
case 'p':
|
||||||
case Ctrl_P:
|
case Ctrl_P:
|
||||||
if (prevwin == NULL)
|
if (!win_valid(prevwin)) {
|
||||||
beep_flush();
|
beep_flush();
|
||||||
else
|
} else {
|
||||||
win_goto(prevwin);
|
win_goto(prevwin);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* exchange current and next window */
|
/* exchange current and next window */
|
||||||
@@ -3768,8 +3769,15 @@ win_free (
|
|||||||
hash_init(&wp->w_vars->dv_hashtab);
|
hash_init(&wp->w_vars->dv_hashtab);
|
||||||
unref_var_dict(wp->w_vars);
|
unref_var_dict(wp->w_vars);
|
||||||
|
|
||||||
if (prevwin == wp)
|
if (prevwin == wp) {
|
||||||
prevwin = NULL;
|
prevwin = NULL;
|
||||||
|
}
|
||||||
|
FOR_ALL_TABS(ttp) {
|
||||||
|
if (ttp->tp_prevwin == wp) {
|
||||||
|
ttp->tp_prevwin = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
win_free_lsize(wp);
|
win_free_lsize(wp);
|
||||||
|
|
||||||
for (i = 0; i < wp->w_tagstacklen; ++i)
|
for (i = 0; i < wp->w_tagstacklen; ++i)
|
||||||
|
Reference in New Issue
Block a user