summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-04 11:03:12 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-04 11:03:12 +0100
commit4778b4d0e147793a4254cbda9c0e270250e970f5 (patch)
tree3dd5aba4453647d7c66a0bd2d3f25e31807d62cd /src/window.c
parentc136a3528b7ebb825c3863d701af44f023381181 (diff)
downloadvim-git-4778b4d0e147793a4254cbda9c0e270250e970f5.tar.gz
patch 8.2.1948: GUI: crash when handling message while closing a windowv8.2.1948
Problem: GUI: crash when handling message while closing a window. (Srinath Avadhanula) Solution: Don't handle message while closing a window. (closes #7250)
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index 9dbfae210..2cd06630f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2569,7 +2569,12 @@ win_close(win_T *win, int free_buf)
// Now we are really going to close the window. Disallow any autocommand
// to split a window to avoid trouble.
+ // Also bail out of parse_queued_messages() to avoid it tries to update the
+ // screen.
++split_disallowed;
+#ifdef MESSAGE_QUEUE
+ ++dont_parse_messages;
+#endif
// Free the memory used for the window and get the window that received
// the screen space.
@@ -2626,6 +2631,9 @@ win_close(win_T *win, int free_buf)
}
--split_disallowed;
+#ifdef MESSAGE_QUEUE
+ --dont_parse_messages;
+#endif
/*
* If last window has a status line now and we don't want one,