diff options
| author | Chong Yidong | 2012-07-19 11:33:08 +0800 |
|---|---|---|
| committer | Chong Yidong | 2012-07-19 11:33:08 +0800 |
| commit | 23dc774492e25ee2191ffa4ee966216649dddbc1 (patch) | |
| tree | 554c009913bb81c7b6aba1da2accf2597bde93d1 /src/window.c | |
| parent | e32a12b5ec3af62d3a152f5924128b34fbb85c99 (diff) | |
| download | emacs-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
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 6 |
1 files changed, 4 insertions, 2 deletions
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)) |