diff options
| author | Eli Zaretskii | 2023-07-23 13:44:40 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2023-07-23 13:44:40 -0400 |
| commit | bbd91a05fa83b7b2a651d5386f4592db405bbcda (patch) | |
| tree | 9ee552f4ce2303c980ffe7ecc77201847edb17a5 | |
| parent | 865817633f6e4b548c9d138fdf792394d021e2f5 (diff) | |
| download | emacs-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.c | 3 |
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 | } |