aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/screen.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 092820321c..36901e92ee 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -1448,7 +1448,11 @@ static void win_update(win_T *wp)
wp->w_lines[idx].wl_lnum = lnum;
wp->w_lines[idx].wl_valid = true;
- if (row > wp->w_height) { // past end of screen
+
+ // Past end of the window or end of the screen. Note that after
+ // resizing wp->w_height may be end up too big. That's a problem
+ // elsewhere, but prevent a crash here.
+ if (row > wp->w_height || row + wp->w_winrow >= Rows) {
// we may need the size of that too long line later on
if (dollar_vcol == -1) {
wp->w_lines[idx].wl_size = plines_win(wp, lnum, true);