emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src ChangeLog frame.c xftfont.c xterm.c


From: Jan Djärv
Subject: [Emacs-diffs] emacs/src ChangeLog frame.c xftfont.c xterm.c
Date: Fri, 27 Nov 2009 17:27:07 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Jan Djärv <jhd> 09/11/27 17:27:07

Modified files:
        src            : ChangeLog frame.c xftfont.c xterm.c 

Log message:
        Don't crash if an X terminal is deleted with force == t.
        
        * xftfont.c (xftfont_end_for_frame): Just return if dpyinfo->display
        is NULL.
        
        * xterm.c (x_delete_terminal): Set dpyinfo->display to NULL.
        
        * frame.c (frame_make_pointer_invisible)
        (frame_make_pointer_visible): Just return if there isn't any selected 
        frame.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7899&r2=1.7900
http://cvs.savannah.gnu.org/viewcvs/emacs/src/frame.c?cvsroot=emacs&r1=1.438&r2=1.439
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xftfont.c?cvsroot=emacs&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xterm.c?cvsroot=emacs&r1=1.1057&r2=1.1058

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7899
retrieving revision 1.7900
diff -u -b -r1.7899 -r1.7900
--- ChangeLog   27 Nov 2009 15:44:30 -0000      1.7899
+++ ChangeLog   27 Nov 2009 17:27:04 -0000      1.7900
@@ -1,5 +1,14 @@
 2009-11-27  Jan Djärv  <address@hidden>
 
+       * xftfont.c (xftfont_end_for_frame): Just return if dpyinfo->display
+       is NULL.
+
+       * xterm.c (x_delete_terminal): Set dpyinfo->display to NULL.
+
+       * frame.c (frame_make_pointer_invisible)
+       (frame_make_pointer_visible): Just return if there isn't any selected 
+       frame.
+
        * search.c (simple_search): Remove warning by making *p const.
 
 2009-11-26  Dan Nicolaescu  <address@hidden>

Index: frame.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/frame.c,v
retrieving revision 1.438
retrieving revision 1.439
diff -u -b -r1.438 -r1.439
--- frame.c     24 Nov 2009 02:40:08 -0000      1.438
+++ frame.c     27 Nov 2009 17:27:06 -0000      1.439
@@ -4377,6 +4377,9 @@
 {
   if (! NILP (Vmake_pointer_invisible))
     {
+      if (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
+        return;
+
       struct frame *f = SELECTED_FRAME ();
       if (f && !f->pointer_invisible
           && FRAME_TERMINAL (f)->toggle_invisible_pointer_hook)
@@ -4394,6 +4397,9 @@
   /* We don't check Vmake_pointer_invisible here in case the
      pointer was invisible when Vmake_pointer_invisible was set to nil.  */
 
+  if (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
+    return;
+
   struct frame *f = SELECTED_FRAME ();
   if (f && f->pointer_invisible && f->mouse_moved
       && FRAME_TERMINAL (f)->toggle_invisible_pointer_hook)

Index: xftfont.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xftfont.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- xftfont.c   17 Nov 2009 13:47:31 -0000      1.30
+++ xftfont.c   27 Nov 2009 17:27:06 -0000      1.31
@@ -668,7 +668,12 @@
 xftfont_end_for_frame (f)
      FRAME_PTR f;
 {
-  XftDraw *xft_draw = font_get_frame_data (f, &xftfont_driver);
+  XftDraw *xft_draw;
+
+  /* Don't do anything if display is dead */
+  if (FRAME_X_DISPLAY (f) == NULL) return 0;
+
+  xft_draw = font_get_frame_data (f, &xftfont_driver);
 
   if (xft_draw)
     {

Index: xterm.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xterm.c,v
retrieving revision 1.1057
retrieving revision 1.1058
diff -u -b -r1.1057 -r1.1058
--- xterm.c     24 Nov 2009 08:37:40 -0000      1.1057
+++ xterm.c     27 Nov 2009 17:27:06 -0000      1.1058
@@ -10747,6 +10747,8 @@
 #endif /* ! USE_GTK */
     }
 
+  /* Mark as dead. */
+  dpyinfo->display = NULL;
   x_delete_display (dpyinfo);
   UNBLOCK_INPUT;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]