[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117638: Merge from emacs-24; up to r117423
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r117638: Merge from emacs-24; up to r117423 |
Date: |
Sun, 03 Aug 2014 20:34:58 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117638 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sun 2014-08-03 16:34:33 -0400
message:
Merge from emacs-24; up to r117423
modified:
lisp/calendar/todo-mode.el todos.el-20120911155047-0ytqo2nidwqquefa-1
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/dired.c dired.c-20091113204419-o5vbwnq5f7feedwu-171
src/xterm.c xterm.c-20091113204419-o5vbwnq5f7feedwu-244
src/xterm.h xterm.h-20091113204419-o5vbwnq5f7feedwu-228
=== modified file 'lisp/calendar/todo-mode.el'
--- a/lisp/calendar/todo-mode.el 2014-07-28 09:39:09 +0000
+++ b/lisp/calendar/todo-mode.el 2014-08-03 20:34:33 +0000
@@ -5226,7 +5226,7 @@
(defun todo--user-error-if-marked-done-item ()
"Signal user error on marked done items.
-Helper funtion for editing commands that only apply to (possibly
+Helper function for editing commands that apply only to (possibly
marked) not done todo items."
(save-excursion
(save-restriction
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-08-03 15:38:52 +0000
+++ b/src/ChangeLog 2014-08-03 20:34:33 +0000
@@ -1,5 +1,16 @@
2014-08-03 Paul Eggert <address@hidden>
+ Fix bug with clang + directory_files_internal + GC (Bug#16986).
+ * dired.c (directory_files_internal): Use a volatile variable
+ to prevent the compiler from optimizing away all copies of a local.
+ I wonder how many other GC-related bugs like this lurk elsewhere?
+
+ Avoid 100% CPU utilization on ssh session exit (Bug#17691).
+ * xterm.h (struct x_display_info): New member 'connection'.
+ * xterm.c (x_term_init, x_delete_terminal): Set and use it,
+ so that x_delete_terminal has a file descriptor to pass to
+ delete_keyboard_wait_descriptor.
+
Don't mishandle year-9999 dates (Bug#18176).
* editfns.c (decode_time_components): Store an invalid timespec
on overflow, instead of returning false, so that the caller can
=== modified file 'src/dired.c'
--- a/src/dired.c 2014-04-16 19:43:46 +0000
+++ b/src/dired.c 2014-08-03 20:34:33 +0000
@@ -150,6 +150,12 @@
Lisp_Object w32_save = Qnil;
#endif
+ /* Don't let the compiler optimize away all copies of DIRECTORY,
+ which would break GC; see Bug#16986. Although this is required
+ only in the common case where GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS,
+ it shouldn't break anything in the other cases. */
+ Lisp_Object volatile directory_volatile = directory;
+
/* Because of file name handlers, these functions might call
Ffuncall, and cause a GC. */
list = encoded_directory = dirfilename = Qnil;
@@ -325,6 +331,7 @@
list = Fsort (Fnreverse (list),
attrs ? Qfile_attributes_lessp : Qstring_lessp);
+ (void) directory_volatile;
RETURN_UNGCPRO (list);
}
=== modified file 'src/xterm.c'
--- a/src/xterm.c 2014-07-30 04:03:45 +0000
+++ b/src/xterm.c 2014-08-03 20:34:33 +0000
@@ -10815,6 +10815,7 @@
dpyinfo->name_list_element = Fcons (display_name, Qnil);
dpyinfo->display = dpy;
+ dpyinfo->connection = ConnectionNumber (dpyinfo->display);
/* Set the name of the terminal. */
terminal->name = xlispstrdup (display_name);
@@ -11267,7 +11268,6 @@
x_delete_terminal (struct terminal *terminal)
{
struct x_display_info *dpyinfo = terminal->display_info.x;
- int connection = -1;
/* Protect against recursive calls. delete_frame in
delete_terminal calls us back when it deletes our last frame. */
@@ -11286,8 +11286,6 @@
and dpyinfo->display was set to 0 to indicate that. */
if (dpyinfo->display)
{
- connection = ConnectionNumber (dpyinfo->display);
-
x_destroy_all_bitmaps (dpyinfo);
XSetCloseDownMode (dpyinfo->display, DestroyAll);
@@ -11329,11 +11327,12 @@
}
/* No more input on this descriptor. */
- if (connection != -1)
- delete_keyboard_wait_descriptor (connection);
+ if (0 <= dpyinfo->connection)
+ delete_keyboard_wait_descriptor (dpyinfo->connection);
/* Mark as dead. */
dpyinfo->display = NULL;
+ dpyinfo->connection = -1;
x_delete_display (dpyinfo);
unblock_input ();
}
=== modified file 'src/xterm.h'
--- a/src/xterm.h 2014-07-27 13:21:30 +0000
+++ b/src/xterm.h 2014-08-03 20:34:33 +0000
@@ -138,6 +138,9 @@
/* This says how to access this display in Xlib. */
Display *display;
+ /* A connection number (file descriptor) for the display. */
+ int connection;
+
/* This is a cons cell of the form (NAME . FONT-LIST-CACHE). */
Lisp_Object name_list_element;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117638: Merge from emacs-24; up to r117423,
Glenn Morris <=