mirror of
https://github.com/neovim/neovim.git
synced 2025-10-15 14:26:07 +00:00
fix(float): crash from nasty :fclose autocmds (#36137)
Problem: :fclose may crash Nvim if autocommands close floats prematurely.
Alternatively, :fclose may call win_close for windows not in curtab if
autocommands change curtab or move windows between tab pages via
nvim_win_set_config (may not crash, but is wrong).
Solution: check win_valid before calling win_close.
(cherry picked from commit 3ccba4cdff
)
Backports #36134.
This commit is contained in:
@@ -290,7 +290,8 @@ void win_float_remove(bool bang, int count)
|
||||
qsort(float_win_arr.items, float_win_arr.size, sizeof(win_T *), float_zindex_cmp);
|
||||
}
|
||||
for (size_t i = 0; i < float_win_arr.size; i++) {
|
||||
if (win_close(float_win_arr.items[i], false, false) == FAIL) {
|
||||
win_T *wp = float_win_arr.items[i];
|
||||
if (win_valid(wp) && win_close(wp, false, false) == FAIL) {
|
||||
break;
|
||||
}
|
||||
if (!bang) {
|
||||
|
Reference in New Issue
Block a user