updated for version 7.3.306
Problem: When closing a window there is a chance that deleting a scrollbar
triggers a GUI resize, which uses the window while it is not in a
valid state.
Solution: Set the buffer pointer to NULL to be able to detect the invalid
situation. Fix a few places that used the buffer pointer
incorrectly.
diff --git a/src/term.c b/src/term.c
index 77387e0..7798480 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3017,12 +3017,20 @@
if (width < 0 || height < 0) /* just checking... */
return;
- if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */
+ if (State == HITRETURN || State == SETWSIZE)
{
+ /* postpone the resizing */
State = SETWSIZE;
return;
}
+ /* curwin->w_buffer can be NULL when we are closing a window and the
+ * buffer has already been closed and removing a scrollbar causes a resize
+ * event. Don't resize then, it will happen after entering another buffer.
+ */
+ if (curwin->w_buffer == NULL)
+ return;
+
++busy;
#ifdef AMIGA