aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2012-07-19 11:33:08 +0800
committerChong Yidong2012-07-19 11:33:08 +0800
commit23dc774492e25ee2191ffa4ee966216649dddbc1 (patch)
tree554c009913bb81c7b6aba1da2accf2597bde93d1
parente32a12b5ec3af62d3a152f5924128b34fbb85c99 (diff)
downloademacs-23dc774492e25ee2191ffa4ee966216649dddbc1.tar.gz
emacs-23dc774492e25ee2191ffa4ee966216649dddbc1.zip
Avoid two crashes involving windows on dead frames.
* window.c (Fwindow_absolute_pixel_edges) (Fdelete_other_windows_internal): Signal an error if the window is on a dead frame. Fixes: debbugs:11984
-rw-r--r--src/ChangeLog6
-rw-r--r--src/window.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 716ebbadab6..8ad531db846 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12012-07-19 Chong Yidong <cyd@gnu.org>
2
3 * window.c (Fwindow_absolute_pixel_edges)
4 (Fdelete_other_windows_internal): Signal an error if the window is
5 on a dead frame (Bug#11984).
6
12012-07-14 Eli Zaretskii <eliz@gnu.org> 72012-07-14 Eli Zaretskii <eliz@gnu.org>
2 8
3 Remove FILE_SYSTEM_CASE. 9 Remove FILE_SYSTEM_CASE.
diff --git a/src/window.c b/src/window.c
index f93f58f9b72..ae8d209df74 100644
--- a/src/window.c
+++ b/src/window.c
@@ -484,9 +484,7 @@ for future use. */)
484 (Lisp_Object window, Lisp_Object limit) 484 (Lisp_Object window, Lisp_Object limit)
485{ 485{
486 register struct window *w = decode_any_window (window); 486 register struct window *w = decode_any_window (window);
487
488 w->combination_limit = limit; 487 w->combination_limit = limit;
489
490 return w->combination_limit; 488 return w->combination_limit;
491} 489}
492 490
@@ -800,6 +798,8 @@ of just the text area, use `window-inside-absolute-pixel-edges'. */)
800{ 798{
801 register struct window *w = decode_any_window (window); 799 register struct window *w = decode_any_window (window);
802 int add_x, add_y; 800 int add_x, add_y;
801
802 CHECK_LIVE_FRAME (w->frame);
803 calc_absolute_offset (w, &add_x, &add_y); 803 calc_absolute_offset (w, &add_x, &add_y);
804 804
805 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w) + add_x), 805 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w) + add_x),
@@ -2568,6 +2568,7 @@ window-start value is reasonable when this function is called. */)
2568 Mouse_HLInfo *hlinfo; 2568 Mouse_HLInfo *hlinfo;
2569 2569
2570 w = decode_any_window (window); 2570 w = decode_any_window (window);
2571 CHECK_LIVE_FRAME (w->frame);
2571 XSETWINDOW (window, w); 2572 XSETWINDOW (window, w);
2572 f = XFRAME (w->frame); 2573 f = XFRAME (w->frame);
2573 2574
@@ -2581,6 +2582,7 @@ window-start value is reasonable when this function is called. */)
2581 /* ROOT must be an ancestor of WINDOW. */ 2582 /* ROOT must be an ancestor of WINDOW. */
2582 { 2583 {
2583 r = decode_any_window (root); 2584 r = decode_any_window (root);
2585 CHECK_LIVE_FRAME (r->frame);
2584 pwindow = XWINDOW (window)->parent; 2586 pwindow = XWINDOW (window)->parent;
2585 while (!NILP (pwindow)) 2587 while (!NILP (pwindow))
2586 if (EQ (pwindow, root)) 2588 if (EQ (pwindow, root))