Mercurial > emacs
changeset 103473:ae2d84ad6135
(redisplay_internal): Check that the frame is still
live after redisplay of its windows.
(redisplay_windows): Check that the window is still live.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Thu, 18 Jun 2009 09:49:05 +0000 |
parents | 702e3f83e52f |
children | 7ead50363544 |
files | src/ChangeLog src/xdisp.c |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Thu Jun 18 07:21:49 2009 +0000 +++ b/src/ChangeLog Thu Jun 18 09:49:05 2009 +0000 @@ -1,3 +1,9 @@ +2009-06-18 Andreas Schwab <aschwab@redhat.com> + + * xdisp.c (redisplay_internal): Check that the frame is still + live after redisplay of its windows. + (redisplay_windows): Check that the window is still live. + 2009-06-17 Andreas Schwab <schwab@linux-m68k.org> * coding.c (detect_coding_utf_16): Fix previous change.
--- a/src/xdisp.c Thu Jun 18 07:21:49 2009 +0000 +++ b/src/xdisp.c Thu Jun 18 09:49:05 2009 +0000 @@ -11838,6 +11838,10 @@ if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) redisplay_windows (FRAME_ROOT_WINDOW (f)); + /* The X error handler may have deleted that frame. */ + if (!FRAME_LIVE_P (f)) + continue; + /* Any scroll bars which redisplay_windows should have nuked should now go away. */ if (FRAME_TERMINAL (f)->judge_scroll_bars_hook) @@ -12255,7 +12259,7 @@ redisplay_windows (w->hchild); else if (!NILP (w->vchild)) redisplay_windows (w->vchild); - else + else if (!NILP (w->buffer)) { displayed_buffer = XBUFFER (w->buffer); /* Use list_of_error, not Qerror, so that