User: aidan
Date: 06/05/23 00:07:10
Modified: xemacs/src ChangeLog frame-x.c
Log:
Fix a hang in read-from-minibuffer if the X display disappears
Revision Changes Path
1.964 +7 -0 XEmacs/xemacs/src/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.963
retrieving revision 1.964
diff -u -p -r1.963 -r1.964
--- ChangeLog 2006/05/22 20:27:57 1.963
+++ ChangeLog 2006/05/22 22:07:05 1.964
@@ -1,3 +1,10 @@
+2006-05-23 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * frame-x.c (x_set_frame_properties):
+ Check that the frame is live and that the device is not being
+ deleted before attempting anything. Avoids calling X code if
+ x_IO_error_handler has seen a broken pipe.
+
2006-05-22 Aidan Kehoe <kehoea(a)parhasard.net>
* file-coding.c (output_bytes_in_ascii_and_hex):
1.74 +8 -1 XEmacs/xemacs/src/frame-x.c
Index: frame-x.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/frame-x.c,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -p -r1.73 -r1.74
--- frame-x.c 2006/05/06 17:56:00 1.73
+++ frame-x.c 2006/05/22 22:07:07 1.74
@@ -745,7 +745,14 @@ x_set_frame_properties (struct frame *f,
Bool y_position_specified_p = False;
Bool internal_border_width_specified = False;
Lisp_Object tail;
- Widget w = FRAME_X_TEXT_WIDGET (f);
+ Widget w;
+
+ /* We can be called after the X IO error handler has seen a broken pipe on
+ the relevant display. Don't do anything in that case. */
+ if (!FRAME_LIVE_P (f) || DEVICE_X_BEING_DELETED (XDEVICE (FRAME_DEVICE (f))))
+ return;
+
+ w = FRAME_X_TEXT_WIDGET (f);
for (tail = plist; !NILP (tail); tail = Fcdr (Fcdr (tail)))
{
Show replies by date