]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid two crashes involving windows on dead frames.
authorChong Yidong <cyd@gnu.org>
Thu, 19 Jul 2012 03:33:08 +0000 (11:33 +0800)
committerChong Yidong <cyd@gnu.org>
Thu, 19 Jul 2012 03:33:08 +0000 (11:33 +0800)
* window.c (Fwindow_absolute_pixel_edges)
(Fdelete_other_windows_internal): Signal an error if the window is
on a dead frame.

Fixes: debbugs:11984
src/ChangeLog
src/window.c

index 716ebbadab6e7de7c95991eb67aa4f440a1b4b92..8ad531db846daa9d40e2ceb5a636a09babddcf70 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-19  Chong Yidong  <cyd@gnu.org>
+
+       * window.c (Fwindow_absolute_pixel_edges)
+       (Fdelete_other_windows_internal): Signal an error if the window is
+       on a dead frame (Bug#11984).
+
 2012-07-14  Eli Zaretskii  <eliz@gnu.org>
 
        Remove FILE_SYSTEM_CASE.
index f93f58f9b72dd99fe6415ed667a217a491de0c41..ae8d209df7456e1b5f33283bbfe23f79bd643f7c 100644 (file)
@@ -484,9 +484,7 @@ for future use.  */)
   (Lisp_Object window, Lisp_Object limit)
 {
   register struct window *w = decode_any_window (window);
-
   w->combination_limit = limit;
-
   return w->combination_limit;
 }
 
@@ -800,6 +798,8 @@ of just the text area, use `window-inside-absolute-pixel-edges'.  */)
 {
   register struct window *w = decode_any_window (window);
   int add_x, add_y;
+
+  CHECK_LIVE_FRAME (w->frame);
   calc_absolute_offset (w, &add_x, &add_y);
 
   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.  */)
   Mouse_HLInfo *hlinfo;
 
   w = decode_any_window (window);
+  CHECK_LIVE_FRAME (w->frame);
   XSETWINDOW (window, w);
   f = XFRAME (w->frame);
 
@@ -2581,6 +2582,7 @@ window-start value is reasonable when this function is called.  */)
     /* ROOT must be an ancestor of WINDOW.  */
     {
       r = decode_any_window (root);
+      CHECK_LIVE_FRAME (r->frame);
       pwindow = XWINDOW (window)->parent;
       while (!NILP (pwindow))
        if (EQ (pwindow, root))