aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2023-07-23 13:44:40 -0400
committerEli Zaretskii2023-07-23 13:44:40 -0400
commitbbd91a05fa83b7b2a651d5386f4592db405bbcda (patch)
tree9ee552f4ce2303c980ffe7ecc77201847edb17a5
parent865817633f6e4b548c9d138fdf792394d021e2f5 (diff)
downloademacs-bbd91a05fa83b7b2a651d5386f4592db405bbcda.tar.gz
emacs-bbd91a05fa83b7b2a651d5386f4592db405bbcda.zip
Fix rare aborts in CHECK_WINDOW_END
Those aborts happen because a window's window_end_vpos value is inconsistent with the current matrix's number of rows, which happens after resizing the mini-window. * src/xdisp.c (mark_window_display_accurate_1): Don't validate the window_end_valid flag if window_end_vpos is inconsistent with the current_matrix's number of rows. This happens, e.g., when Edebug wants to show a value in the mini-window that causes it to resize, as the window above the mini-window was usually already redisplayed, and we think its display is accurate.
-rw-r--r--src/xdisp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 540fdbb0b07..8a6e2b0f6d6 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -17498,7 +17498,8 @@ mark_window_display_accurate_1 (struct window *w, bool accurate_p)
17498 else 17498 else
17499 w->last_point = marker_position (w->pointm); 17499 w->last_point = marker_position (w->pointm);
17500 17500
17501 w->window_end_valid = true; 17501 if (w->window_end_vpos < w->current_matrix->nrows)
17502 w->window_end_valid = true;
17502 w->update_mode_line = false; 17503 w->update_mode_line = false;
17503 w->preserve_vscroll_p = false; 17504 w->preserve_vscroll_p = false;
17504 } 17505 }