Eli Zaretskii writes: >> From: Björn Bidar >> Cc: Eli Zaretskii , Po Lu , >> juri@linkov.net, 70385@debbugs.gnu.org, vekazanov@gmail.com >> Date: Mon, 15 Apr 2024 20:04:02 +0300 >> >> Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text >> editors" writes: >> >> > Eli Zaretskii writes: >> > >> >> I think this should be >> >> >> >> if ((window_outdated (w) >> >> || !w->window_end_valid >> >> || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix, >> >> vpos))) >> > >> > Yes, sorry. >> > >> >> I'm not sure it will help, because it seems the segfault happens in >> >> the MATRIX_ROW_DISPLAYS_TEXT_P macro. So I think we are somehow >> >> dealing with w->current_matrix whose 'nrows' is too small. The >> >> mouse-highlight code detects that case in x_y_to_hpos_vpos. >> > >> > Right. What about this? >> > >> > diff --git a/src/xdisp.c b/src/xdisp.c >> > index d984c12d1aa..dcecc2b09d4 100644 >> > --- a/src/xdisp.c >> > +++ b/src/xdisp.c >> > @@ -35772,6 +35772,7 @@ note_fringe_highlight (struct frame *f, Lisp_Object window, int x, int y, >> > /* Don't access the TEXT_AREA of a row that does not display text, or >> > when the window is outdated. (bug#70385) */ >> > if (window_outdated (w) >> > + || (vpos >= w->current_matrix->nrows) >> > || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix, >> > vpos))) >> > return; >> > >> > It's the same test x_y_to_hpos_vpos applies to decide whether to punt >> > and return NULL. >> >> Tried the change but it wasn't enough: > > OK, but can you please collect the data I asked for? It's important > for figuring out the solution. Sorry I wasn't running Emacs with gdb attached, I only posthumously inspected the core dump. Now I ran gdb again with the commands you requested. It took quite some time to actually hit the window that causes a crash, before Emacs ran normal.