Plug another hole for longjmp-ing from 'redisplay_window'
* src/fringe.c (update_window_fringes): Inhibit quitting, so as not to longjmp out of redisplay_window. (Bug#44448)
This commit is contained in:
parent
b21c9b0816
commit
6898ae6f8c
1 changed files with 10 additions and 0 deletions
10
src/fringe.c
10
src/fringe.c
|
@ -969,6 +969,14 @@ update_window_fringes (struct window *w, bool keep_current_p)
|
|||
if (w->pseudo_window_p)
|
||||
return 0;
|
||||
|
||||
ptrdiff_t count = SPECPDL_INDEX ();
|
||||
|
||||
/* This function could be called for redisplaying non-selected
|
||||
windows, in which case point has been temporarily moved to that
|
||||
window's window-point. So we cannot afford quitting out of here,
|
||||
as point is restored after this function returns. */
|
||||
specbind (Qinhibit_quit, Qt);
|
||||
|
||||
if (!MINI_WINDOW_P (w)
|
||||
&& (ind = BVAR (XBUFFER (w->contents), indicate_buffer_boundaries), !NILP (ind)))
|
||||
{
|
||||
|
@ -1331,6 +1339,8 @@ update_window_fringes (struct window *w, bool keep_current_p)
|
|||
row->fringe_bitmap_periodic_p = periodic_p;
|
||||
}
|
||||
|
||||
unbind_to (count, Qnil);
|
||||
|
||||
return redraw_p && !keep_current_p;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue