diff src/window.c @ 22800:8e7cbf73c3a0 v8.2.1948

patch 8.2.1948: GUI: crash when handling message while closing a window Commit: https://github.com/vim/vim/commit/4778b4d0e147793a4254cbda9c0e270250e970f5 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Nov 4 11:03:12 2020 +0100 patch 8.2.1948: GUI: crash when handling message while closing a window Problem: GUI: crash when handling message while closing a window. (Srinath Avadhanula) Solution: Don't handle message while closing a window. (closes #7250)
author Bram Moolenaar <Bram@vim.org>
date Wed, 04 Nov 2020 11:15:04 +0100
parents e871a824efc9
children 80bd5de5dcab
line wrap: on
line diff
--- 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,