Fix segfaults when starting on 80x26 TTY frames
* src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Make sure we have valid frame glyph matrices for the interactive session. (Bug#55760) (adjust_frame_glyphs): Add assertions for when we fail to allocate valid frame glyph matrices for a TTY frame.
This commit is contained in:
parent
bfa647972f
commit
ef5651cc77
1 changed files with 25 additions and 1 deletions
|
@ -1837,7 +1837,18 @@ adjust_frame_glyphs (struct frame *f)
|
|||
if (FRAME_WINDOW_P (f))
|
||||
adjust_frame_glyphs_for_window_redisplay (f);
|
||||
else
|
||||
adjust_frame_glyphs_for_frame_redisplay (f);
|
||||
{
|
||||
adjust_frame_glyphs_for_frame_redisplay (f);
|
||||
eassert (FRAME_INITIAL_P (f)
|
||||
|| noninteractive
|
||||
|| !initialized
|
||||
|| (f->current_matrix
|
||||
&& f->current_matrix->nrows > 0
|
||||
&& f->current_matrix->rows
|
||||
&& f->desired_matrix
|
||||
&& f->desired_matrix->nrows > 0
|
||||
&& f->desired_matrix->rows));
|
||||
}
|
||||
|
||||
/* Don't forget the buffer for decode_mode_spec. */
|
||||
adjust_decode_mode_spec_buffer (f);
|
||||
|
@ -2119,6 +2130,19 @@ adjust_frame_glyphs_for_frame_redisplay (struct frame *f)
|
|||
SET_FRAME_GARBAGED (f);
|
||||
}
|
||||
}
|
||||
else if (!FRAME_INITIAL_P (f) && !noninteractive && initialized)
|
||||
{
|
||||
if (!f->desired_matrix->nrows || !f->desired_matrix->rows)
|
||||
{
|
||||
adjust_glyph_matrix (NULL, f->desired_matrix, 0, 0, matrix_dim);
|
||||
SET_FRAME_GARBAGED (f);
|
||||
}
|
||||
if (!f->current_matrix->nrows || !f->current_matrix->rows)
|
||||
{
|
||||
adjust_glyph_matrix (NULL, f->current_matrix, 0, 0, matrix_dim);
|
||||
SET_FRAME_GARBAGED (f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue