From 90f20d942216928a796fe8dca7ede19f95cf2df3 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 18 Jun 2009 09:49:05 +0000 Subject: [PATCH] (redisplay_internal): Check that the frame is still live after redisplay of its windows. (redisplay_windows): Check that the window is still live. --- src/ChangeLog | 6 ++++++ src/xdisp.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 21803be7508..a0bb104d32c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/xdisp.c b/src/xdisp.c index dd2c8714c0c..8094b8f8e13 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11838,6 +11838,10 @@ redisplay_internal (preserve_echo_area) 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 (window) 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 -- 2.39.2