aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/buffer.c4
-rw-r--r--src/nvim/version.c2
-rw-r--r--src/nvim/window.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 7afa663fe3..11171617ef 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -4425,8 +4425,8 @@ linenr_T buf_delsign(
}
/* When deleted the last sign needs to redraw the windows to remove the
- * sign column. */
- if (buf->b_signlist == NULL) {
+ * sign column. Not when curwin is NULL (this means we're exiting). */
+ if (buf->b_signlist != NULL && curwin != NULL) {
redraw_buf_later(buf, NOT_VALID);
changed_cline_bef_curs();
}
diff --git a/src/nvim/version.c b/src/nvim/version.c
index c93fc5083c..bf0dace6ef 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -226,7 +226,7 @@ static int included_patches[] = {
//372,
371,
370,
- //369,
+ 369,
368,
367,
//366,
diff --git a/src/nvim/window.c b/src/nvim/window.c
index dccf3e2efc..27fb160035 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -2001,6 +2001,10 @@ void win_free_all(void)
while (firstwin != NULL)
(void)win_free_mem(firstwin, &dummy, NULL);
+
+ // No window should be used after this. Set curwin to NULL to crash
+ // instead of using freed memory.
+ curwin = NULL;
}
#endif