diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-06 05:08:15 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-06 06:15:35 -0400 |
commit | dc15dcffadca790a7b274110c0b356dcc22dfb82 (patch) | |
tree | afe67cd235b58667aa05105c57a3a778075cbec2 /src/nvim/window.c | |
parent | bb519fb261edf03be28f1a9150bdba58ed9d241e (diff) | |
download | rneovim-dc15dcffadca790a7b274110c0b356dcc22dfb82.tar.gz rneovim-dc15dcffadca790a7b274110c0b356dcc22dfb82.tar.bz2 rneovim-dc15dcffadca790a7b274110c0b356dcc22dfb82.zip |
vim-patch:8.0.0782: using freed memory in quickfix code
Problem: Using freed memory in quickfix code. (Dominique Pelle)
Solution: Handle a help window differently. (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/d28cc3f55d4a5a980f6ac6fa682382822a223720
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index 9976ae9aff..04990fedae 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -1902,7 +1902,7 @@ int win_close(win_T *win, int free_buf) /* When closing the help window, try restoring a snapshot after closing * the window. Otherwise clear the snapshot, it's now invalid. */ - if (win->w_buffer != NULL && win->w_buffer->b_help) + if (bt_help(win->w_buffer)) help_window = TRUE; else clear_snapshot(curtab, SNAP_HELP_IDX); @@ -1967,8 +1967,8 @@ int win_close(win_T *win, int free_buf) if (only_one_window() && win_valid(win) && win->w_buffer == NULL && (last_window() || curtab != prev_curtab || close_last_window_tabpage(win, free_buf, prev_curtab))) { - /* Autocommands have close all windows, quit now. Restore - * curwin->w_buffer, otherwise writing ShaDa file may fail. */ + // Autocommands have closed all windows, quit now. Restore + // curwin->w_buffer, otherwise writing ShaDa file may fail. if (curwin->w_buffer == NULL) curwin->w_buffer = curbuf; getout(0); @@ -5341,7 +5341,7 @@ bool only_one_window(void) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT int count = 0; FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { if (wp->w_buffer != NULL - && (!((wp->w_buffer->b_help && !curbuf->b_help) + && (!((bt_help(wp->w_buffer) && !bt_help(curbuf)) || wp->w_p_pvw) || wp == curwin) && wp != aucmd_win) { count++; } |