# HG changeset patch # User Andreas Schwab # Date 1245318545 0 # Node ID ae2d84ad61359f28149c56f9e1b3296716d4cde0 # Parent 702e3f83e52f406c662acb25ed7bf6232f9f9e34 (redisplay_internal): Check that the frame is still live after redisplay of its windows. (redisplay_windows): Check that the window is still live. diff -r 702e3f83e52f -r ae2d84ad6135 src/ChangeLog --- 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 + + * 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 * coding.c (detect_coding_utf_16): Fix previous change. diff -r 702e3f83e52f -r ae2d84ad6135 src/xdisp.c --- 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