1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-21 23:50:36 -08:00
Commit graph

38808 commits

Author SHA1 Message Date
Paul Eggert
e09dc1112b Simplify exec_byte_code via moving decls etc.
* src/bytecode.c (exec_byte_code): Simplify, mostly by moving
initializers into decls, and by omitting some unnecessary
changes to ‘top’.  This improves performance a bit on x86-64,
as it happens.
2016-08-09 01:31:23 -07:00
Paul Eggert
644fc17b9a Remove interpreter’s byte stack
This improves performance overall on my benchmark on x86-64,
since the interpreted program-counter resides in a machine
register rather than in RAM.
* etc/DEBUG, src/.gdbinit: Remove xbytecode GDB command, as there
is no longer a byte stack to decode.
* src/bytecode.c (struct byte_stack, byte_stack_list)
(relocate_byte_stack): Remove.  All uses removed.
(FETCH): Simplify now that pc is now local (typically, in a
register) and no longer needs to be relocated.
(CHECK_RANGE): Remove.  All uses now done inline, in a different way.
(BYTE_CODE_QUIT): Remove; now done by op_relative_branch.
(exec_byte_code): Allocate a copy of the function’s bytecode,
so that there is no problem if GC moves it.
* src/lisp.h (struct handler): Remove byte_stack member.
All uses removed.
(SAFE_ALLOCA_LISP_EXTRA): New macro, a generalization of
SAFE_ALLOCA_LISP.
(SAFE_ALLOCA_LISP): Use it.
2016-08-09 01:31:22 -07:00
Paul Eggert
cb71a119f7 Remove arbitrary limit on bytecode maxdepth
* src/bytecode.c (exec_byte_code): Remove MAX_ALLOCA-based limit
on bytecode maxdepth, by using SAFE_ALLOCA_LISP instead of alloca.

pipeline is fuller.
2016-08-09 01:31:22 -07:00
Paul Eggert
d896f78973 Tune bytecode quitting
* src/bytecode.c (BYTE_CODE_QUIT): Check for GC, too.  Do the
check only once every 256 times.  This should be good enough, and
improves performance significantly on x86-64 as branch-prediction
typically assumes checking will not be done so the instruction
pipeline stays fuller.
(exec_byte_code): Set up the quit counter.  Don’t call maybe_gc
directly, as BYTE_CODE_QUIT does that now.
2016-08-09 01:31:21 -07:00
Paul Eggert
4d07064a43 Simplify BYTE_CODE_SAFE checking
* src/bytecode.c (BYTE_CODE_SAFE): Default to false, so that it
can be used outside #if.  All uses of ‘defined BYTE_CODE_SAFE’
changed to ‘BYTE_CODE_SAFE’.  Use BYTE_CODE_SAFE in plain
expressions instead of #if expressions when this is easy.
(struct byte_stack) [BYTE_CODE_SAFE]: Remove member ‘bottom’,
as it is no longer needed.
(exec_byte_code): Omit #if BYTE_CODE_SAFE when this is easy.
Simplify stack-overflow checking when BYTE_CODE_SAFE.
2016-08-09 01:31:20 -07:00
Paul Eggert
846e88eb99 Get BYTE_CODE_METER working again
BYTE_CODE_METER hasn’t worked since 2013, and nobody seems to have
noticed.  Perhaps we should remove it?
* src/bytecode.c (METER_2) [BYTE_CODE_METER]:
Use *aref_addr instead of AREF, since it needs to be an lvalue.
2016-08-09 00:37:08 -07:00
Eli Zaretskii
9fc22fb932 Fix cursor position under scroll-conservatively and overlay strings
* src/xdisp.c (try_scrolling): Handle the case where the last
visible screen line of a window displays a before- or after-string
that takes up the whole screen line, and therefore there's no
place to display the cursor, even though the window does seem to
include the position of point.  (Bug#24179)
2016-08-08 18:15:55 +03:00
Paul Eggert
7961dee182 Tune interpretation of integer arglist descriptor
* src/bytecode.c (exec_byte_code):
Simplify and tune when INTEGERP (args_template).
2016-08-07 10:02:03 -07:00
Noam Postavsky
7fb75680b3 Fix debugging of string-match-p errors
* src/eval.c (call_debugger): Bind inhibit-changing-match-data to nil so
that debugger code that needs to do regexp match won't break
(Bug #23949, Bug #24166, Bug#16294).
2016-08-07 10:24:40 -04:00
Paul Eggert
c1b5000d8c Merge from origin/emacs-25
d841a03 ; Spelling fix
a6ae479 Post AppDefined events from the main thread ONLY (bug#23934)
d35d398 Update to the AUTHORS file for Bob Weiner
4d2f4df Revert "Fix local printer set to left aligned string formatter."
cd1b4d6 Revert "Fix ses-delete-blanks to delete only blanks + documen...
f7ceb8e Revert "Fix English."
baa7abd Improve doc strings of 'gud-gdb' and 'gdb'
aa4271a Fix doc string of 'minibuffer-message-timeout'
b275cc7 Fix English.
3c97b0f Fix ses-delete-blanks to delete only blanks + documentation.
272391f profiler: document prefix arg for tree expansion
442cc39 Clarify usage of eshell-visual-options
b443c3c Fix comment in files-in-below-directory
8a38e94 Fix local printer set to left aligned string formatter.
0f0b191 ; Fix typos in NEWS
6bdf687 ; * etc/NEWS: Remove temporary marks
2016-08-05 14:10:30 -07:00
Paul Eggert
0274862f39 Merge from origin/emacs-25
d08afa1 * etc/AUTHORS: Update the AUTHORS file
2668500 ;; * ChangeLog.2: ChangeLog update.
7acfaea ; ChangeLog fixes
97d28b4 * admin/authors.el (authors-valid-file-names): Addition.
9ab52f6 * admin/authors.el: Additions.
0e646c7 Warn about Cairo-related problems
bc4c07f Don't let completion break `declare' handling
66f95e0 Adjust match data before calling after-change-funs
52cf0d5 Do not show string-rectangle preview if minibuffer is empty
6a3d031 * etc/PROBLEMS: Add entry about selection problems under Plas...

# Conflicts:
#	ChangeLog.2
#	src/lisp.h
2016-08-05 14:10:30 -07:00
Paul Eggert
a855bf48d4 Merge from origin/emacs-25
9a41cd1 ; Fix typo
9356fe2 Expand FIXME near definition of fboundp
219b39f kill-rectangle should mention killed-rectangle
59fa4c3 Avoid assertion violations in nhexl-mode
2016-08-05 14:09:09 -07:00
Paul Eggert
6b780a2e97 Merge from origin/emacs-25
9ba51ed Document buffer-swap-text+save-excursion interaction
452aa94 Fix eieio vs cl-generic incompatibilities found in Rudel (bug...
248d5dd Include cl-generic in package--builtin-versions (bug#22817)
8f5a8b6 Improve timing in `tramp-test29-environment-variables'
05ba7a0 Add test for handling environment variables in Tramp
e393d4f * lisp/emacs-lisp/package.el (describe-package-1) (package-st...
5e38887 ; * lisp/net/tramp.el: Fix 2010-10-04 comment typo.  (Bug#23913)
90f2169 ; Spelling fixes
069fc05 Improve documentation of search functions
0a0144a Delete environment variables in Tramp when needed
f624671 Add "New in Emacs 25" section to the FAQ
658daf9 Fix 'vertical-motion' in non-interactive sessions
686b520 Fix memory leak in imagemagick-types
4069b71 Update ELisp manual to match 'string-collate-equalp' doc string
1b2d6a6 Clarify docstring of find-feature-regexp
aac62a6 Add details to cl-lib defining macros' docstrings
d6aa4da Clarify doc string of 'save-buffer'
03bcf11 Un-confuse doc string of 'string-collate-equalp'
c53135b Clarify documentation of 'mouse-on-link-p'

# Conflicts:
#	lisp/emacs-lisp/eieio-core.el
2016-08-05 14:09:08 -07:00
Paul Eggert
1a86b5d607 Merge from origin/emacs-25
d4c6774 Fix missing point information in undo
3a9d629 Avoid crashes when buffer modification hooks clobber match data
178b2f5 Note combine-and-quote-strings doesn't shell quote
dec7567 Explain when package-initialize isn't called
113d1e2 Fix escaping in sh-indent-after-continuation docstr
80e2044 ; * etc/NEWS: Improve previous change.
5bb9e6c ; * etc/NEWS: Document how to avoid horizontal scroll bars.
38f4b8e Clarify the documentation of back-references in replacements
2016-08-05 14:07:00 -07:00
Paul Eggert
80fcf41d31 Merge from origin/emacs-25
850ba44 Clarify lexical binding with symbol args behavior
f981b31 * lisp/net/tramp-sh.el (tramp-remote-path): Doc fix.
68fc964 * lisp/net/tramp-sh.el (tramp-remote-path): Doc fix.  (Bug#23...
21110af Avoid assertion violations when rendering some fonts
6192b6c Document more details of package activation
272ddc6 Fixup warning message regarding HOME a bit more
43206d6 * lisp/leim/quail/indian.el ("bengali-probhat"): Change indic...
d41f7ff Fix input method "probhat" for Bengali
c150a64 ; Fix typo in commit before last
ebf0472 Add to elisp-completion-at-point's docstring
fd9fad0 Give more helpful warning about setting HOME
ea6b01d ; * lisp/term.el (term-mode): FIXME comment about bidi reorde...

# Conflicts:
#	lisp/term.el
2016-08-05 14:06:59 -07:00
Paul Eggert
92e5b41c7c Spelling and minor grammar fixes
* test/file-organization.org: Rename from test/file-organisation.org.
2016-08-05 13:35:13 -07:00
Paul Eggert
d841a03c5e ; Spelling fix 2016-08-03 14:59:28 -07:00
Paul Eggert
967e2ef61d Fix GnuTLS includes
* src/gnutls.c [HAVE_GNUTLS]: Don’t include gnutls/gnutls.h
a second time; although it doesn’t hurt, it’s not needed.
* src/sysdep.c [!HAVE_GNUTLS]: Don’t include gnutls/crypto.h,
as it may not be available.  Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00100.html
2016-08-03 14:21:21 -07:00
Alan Third
a6ae479216 Post AppDefined events from the main thread ONLY (bug#23934)
* src/nsterm.h: Make nextappdefined var not just GNUStep.
* src/nsterm.c (ns_send_appdefined, sendFromMainThread): Remove GNUStep
2016-08-03 17:19:12 +01:00
Paul Eggert
f0b5d4bd3e Simplify by assuming GnuTLS 2.12.2 or later
* src/gnutls.c (gnutls_certificate_details):
* src/sysdep.c: Assume GnuTLS 2.12.2 or later.
2016-08-03 08:02:31 -04:00
Paul Eggert
744cc9fa17 Port to systems lacking GNUTLS_NONBLOCK
Problem reported by Colin Baxter in:
http://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00096.html
* src/gnutls.c (Fgnutls_boot): Don’t assume GNUTLS_NONBLOCK is defined.
2016-08-03 07:46:30 -04:00
Paul Eggert
1a8d311236 Fix non-blocking GnuTLS with slow connection
Although the problem is reported for OS X (Bug#23982), it seems to
be possible on other POSIXish platforms.
* src/gnutls.c (emacs_gnutls_nonblock_errno) [!WINDOWSNT]:
New function.
(emacs_gnutls_handshake) [!WINDOWSNT]:
Use it as the errno function, if non-blocking.
(Fgnutls_boot): Use GNUTLS_NONBLOCK if non-blocking.
2016-08-03 01:55:49 -07:00
Paul Eggert
64edd14ca9 Require GnuTLS 2.12.2 or later
* configure.ac, etc/NEWS: Require GnuTLS 2.12.2 or later,
instead of merely 2.6.6 or later (Bug#23982#20).
* src/gnutls.c (init_gnutls_functions, emacs_gnutls_handshake)
[WINDOWSNT]: Don’t bother with gnutls_check_version or
gnutls_transport_set_lowat, as they are no longer needed now that
we require gnutls 2.12.2 or later.
2016-08-03 01:55:49 -07:00
Stefan Monnier
5f0b1c307a * src/window.c (sanitize_window_sizes): Remove unused arg `frame'
* src/window.h (sanitize_window_sizes): Adjust prototype.
* src/frame.c (adjust_frame_size): Adjust calls.
2016-08-02 22:43:11 -04:00
Paul Eggert
d98f783426 Fix (mapcar F S) crash when F alters S’s length
* src/fns.c (mapcar1): Return number of elements computed,
which can be less than LENI if the function alters the list.
All callers changed.  (Bug#24118)
2016-08-02 21:06:02 -04:00
Paul Eggert
07e9281f7a Port window changes to --enable-gcc-warnings
* src/window.c (sanitize_window_sizes): Return void.
This pacifies GCC, and no caller uses the return value anyway.
2016-08-02 20:47:37 -04:00
Stefan Monnier
49e0c276b2 * src/window.c: Fix bootstrap failure due to window.el changes
(sanitize_window_sizes): Adjust to new calling convention of
window--sanitize-window-sizes and only call it if defined.
(Fwindow__sanitize_window_sizes): Remove.
(syms_of_window): Don't defsubr it.
2016-08-02 19:45:30 -04:00
Paul Eggert
0100805af1 Port regex changes to strict ISO C
* src/regex.c (regex_compile): Redo casts.
2016-08-02 16:16:45 -04:00
Michal Nazarewicz
edd5dd80c8 Remove unused STREQ macro
This fixes the following compilation warning:

    regex.c:516:0: warning: macro "STREQ" is not used [-Wunused-macros]
     #define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
     ^

* src/regex.c (STREQ): Remove unused macro.  It should have been removed
in a [4538a5e: Refactor regex character class parsing in [:name:]]
commit but was mistakenly left out.
2016-08-02 19:52:50 +02:00
Michal Nazarewicz
54a3c0c98f Hardcode regex syntax to remove dead code handling different syntax
Emacs only ever uses its own regex syntax so support for other syntaxes
is never used.  Hardcode the syntax so that the compilar can detect such
dead code and remove it from compiled code.

The only exception is RE_NO_POSIX_BACKTRACKING which can be separatelly
specified.  Handle this separatelly with a function argument (replacing
now unnecessary syntax argument).

With this patchset, size of Emacs binary on x86_64 machine is reduced by
around 60 kB:

	new-sizes:-rwx------ 3 mpn eng 30254720 Jul 27 23:31 src/emacs
	old-sizes:-rwx------ 3 mpn eng 30314828 Jul 27 23:29 src/emacs

* src/regex.h (re_pattern_buffer): Don’t define syntax field #ifdef emacs.
(re_compile_pattern): Replace syntax with posix_backtracking argument.

* src/regex.c (print_compiled_pattern): Don’t print syntax #ifdef emacs.
(regex_compile): #ifdef emacs, replace syntax argument with
posix_backtracking which is now used instead of testing for
RE_NO_POSIX_BACKTRACKING syntax.
(re_match_2_internal): Don’t access bufp->syntax #ifndef emacs.
(re_compile_pattern): Replace syntax with posix_backtracking argument.

* src/search.c (compile_pattern_1): Pass boolean posix_backtracking
instead of syntax to re_compile_pattern.
2016-08-02 15:39:10 +02:00
Michal Nazarewicz
da9c55ddbb Get rid of re_set_whitespace_regexp
* src/regex.h (re_set_whitespace_regexp): Delete.
(re_compile_pattern): Add whitespace_regexp argument #ifdef emacs.

* src/regex.c (re_set_whitespace_regexp, whitespace_regexp): Delete.
(regex_compile): Add whitespace_regexp argument #ifdef emacs and wrap
whitespace_regexp-related code in an #ifdef emacs so it’s compiled out
unless building Emacs.
(re_compile_pattern): Pass whitespace_regexp argument to regex_compile

* src/search.c (compile_pattern_1): Don’t use re_set_whitespace_regexp,
pass the regex as argument to re_compile_pattern instead.
2016-08-02 15:39:10 +02:00
Michal Nazarewicz
04d96eca08 Get rid of re_set_syntax
Instead of using a global variable for storing regex syntax, pass it
to re_compile_pattern.  This is only enabled when compiling Emacs (i.e.
‘#ifdef emacs’).

* src/regex.h (re_set_syntax): Declare only #ifndef emacs.
(re_compile_pattern): Now takes syntax argument #ifdef emacs.

* src/regex.c (re_syntax_options): Define only #ifndef emacs.
(re_compile_pattern): Use the new syntax argument #ifdef emacs.

* src/search.c (compile_pattern_1): Don’t use re_set_syntax and
instead pass syntax to re_compile_pattern directly.
2016-08-02 15:39:10 +02:00
Michal Nazarewicz
9a418e0f98 Remove dead opcodes in regex bytecode
There is no way to specify before_dot and after_dot opcodes in a regex
so code handling those ends up being dead.  Remove it.

* src/regex.c (print_partial_compiled_pattern, regex_compile,
analyze_first, re_match_2_internal): Remove handling and references to
before_dot and after_dot opcodes.
2016-08-02 15:39:10 +02:00
Michal Nazarewicz
4538a5e37e Refactor regex character class parsing in [:name:]
re_wctype function is used in three separate places and in all of
those places almost exact code extracting the name from [:name:]
surrounds it.  Furthermore, re_wctype requires a NUL-terminated
string, so the name of the character class is copied to a temporary
buffer.

The code duplication and unnecessary memory copying can be avoided by
pushing the responsibility of parsing the whole [:name:] sequence to
the function.

Furthermore, since now the function has access to the length of the
character class name (since it’s doing the parsing), it can take
advantage of that information in skipping some string comparisons and
using a constant-length memcmp instead of strcmp which needs to take
care of NUL bytes.

* src/regex.c (re_wctype): Delete function.  Replace it with:
(re_wctype_parse): New function which parses a whole [:name:] string
and returns a RECC_* constant or -1 if the string is not of [:name:]
format.
(regex_compile): Use re_wctype_parse.
* src/syntax.c (skip_chars): Use re_wctype_parse.
2016-08-02 15:39:10 +02:00
Paul Eggert
53917616b0 Fix use-after-close in connect_network_socket
* src/process.c (connect_network_socket):
Reverse sense of previous fix.  Problem reported by Ken Brown in:
http://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00004.html
2016-08-02 03:31:26 -04:00
Eli Zaretskii
aa4271ab72 Fix doc string of 'minibuffer-message-timeout'
* src/keyboard.c (syms_of_keyboard) <minibuffer-message-timeout>:
Doc fix.  (Bug#24123)
2016-08-01 16:29:20 +03:00
Martin Rudalics
8cbaf34253 Fix calculation of tool bar width reported by `frame-geometry' (Bug#24107)
* src/w32fns.c (Fw32_frame_geometry): Fix calculation of tool
bar width (Bug#24107).  Reindent.
* src/xfns.c (frame_geometry): Fix calculation of tool bar
width on non-GTK builds.
2016-07-30 14:11:12 +02:00
Eli Zaretskii
9c542a23a8 Avoid warnings about undo list while decoding
* src/coding.c (coding_restore_undo_list): New function.
(decode_coding_gap, decode_coding_object): Temporarily set the
buffer's undo list to t, to avoid warnings when decoding changes
the buffer many times, e.g. due to post-read-conversion.  Use
coding_restore_undo_list to make sure the undo list is restored.
(Bug#23813)
2016-07-30 11:23:10 +03:00
Michal Nazarewicz
74f9c1a8cd Fix ‘is multibyte’ test regex.c’s mutually_exclusive_p (bug#24020)
* src/regex.c (mutually_exclusive_p): Fix how whether character is
unibyte is tested when calling execute_charset function.  This bug has
been introduced by [6dc6b00: Fix ‘[[:cc:]]*literal’ regex failing to
match ‘literal’] which dropped a call to IS_REAL_ASCII (c) macro.
Reinstitute it.
2016-07-27 18:18:34 +02:00
Eli Zaretskii
c54238db6a Avoid segfaults in compute_motion
* src/indent.c (compute_motion): Don't turn on and don't use the
width cache unless the buffer's width-table is non-nil.  This
avoids segfaults because code that uses the width cache assumes
the width-table exists.  (Bug#24064)
2016-07-26 18:27:21 +03:00
Michal Nazarewicz
6dc6b0079e Fix ‘[[:cc:]]*literal’ regex failing to match ‘literal’ (bug#24020)
The regex engine tries to optimise Kleene star by avoiding backtracking
when it can detect that star’s operand cannot match what follows it in
the pattern.

For example, when ‘[[:alpha:]]*1’ tries to match a ‘foo’, the engine
will test the longest match for ‘[[:alpha:]]*’, namely ’foo’ which is
the entire string.  Literal digit one still present in the pattern will
however not match the remaining empty string.

Normally, backtracking would be performed trying a shorter match for the
character class (namely ‘fo’ leaving ‘o’ in the string), but since the
engine knows whatever would be put back into the string cannot possibly
match literal digit one so no backtracking will be attempted.

In the regexes of the form ‘[[:CC:]]*X’, the optimisation can be applied
if the character class CC does not match character X.  In the above
example, this holds because digit one is not in alpha character class.

This test is performed by mutually_exclusive_p function but it did not
check class bits of a charset opcode.  This resulted in an assumption
that character classes do not match multibyte characters.  For example,
it would incorrectly conclude that [[:alpha:]] doesn’t match ‘ż’.

This, in turn, led to the aforementioned Kleene star optimisation being
incorrectly applied in patterns such as ‘[[:graph:]]*☠’ (which should
match ‘☠’ but doesn’t as can be tested by executing
    (string-match-p "[[:graph:]]*☠" "☠")
which should return 0 but instead yields nil.

This issue affects any class witch matches multibyte characters, i.e.
if ‘[[:cc:]]’ matches a multibyte character X then ‘[[:cc:]]*X’ will
fail to match ‘X’.

* src/regex.c (executing_charset): A new function for executing the
charset and charset_not opcodes.  It performs check on the character
taking into consideration existing bitmap, range table and class bits.
It also advances the pointer in the regex bytecode past the parsed
opcode.
(CHARSET_LOOKUP_RANGE_TABLE_RAW, CHARSET_LOOKUP_RANGE_TABLE): Removed.
Code now included in executing_charset.
(mutually_exclusive_p, re_match_2_internal): Changed to take advantage
of executing_charset function.

* test/src/regex-tests.el: New file with tests for the character class
matching.
2016-07-25 23:52:27 +02:00
Paul Eggert
50cc08bf6e ‘signal’ no longer returns
Although for decades ‘signal’ has been documented to not return,
a corner case in the Lisp debugger causes ‘signal’ to return.
Remove the corner case and adjust Emacs internals accordingly.
An alternative would be to document the corner case, but this
would complicate the Lisp API unnecessarily.  (Bug#24047)
* src/eval.c (signal_or_quit): New function, with most of the
old contents of Fsignal.
(quit): New function, which uses signal_or_quit and which
might return.  All keyboard-based callers of Fsignal (Qquit,
Qnil) changed to use this new function instead.
(Fsignal): Use signal_or_quit.  Now _Noreturn.  All callers
changed.
(xsignal): Move to lisp.h.
* src/lisp.h (xsignal): Now an inline function, as it's now
just an alias for Fsignal.
2016-07-25 00:38:34 +02:00
Noam Postavsky
66f95e0dab Adjust match data before calling after-change-funs
It's important to adjust the match data in between calling
before-change-functions and after-change-functions, so that buffer
change hooks will always see match-data consistent with buffer content.
(Bug #23917)

* src/insdel.c (replace_range): Add new parameter ADJUST_MATCH_DATA, if
true call update_search_regs.  Update all callers (except
Freplace_match) to pass 0 for the new parameter.
* src/search.c (update_search_regs): New function, extracted from
Freplace_match.
(Freplace_match): Remove match data adjustment code, pass 1 for
ADJUST_MATCH_DATA to replace_range instead.
2016-07-22 23:55:23 -04:00
Stefan Monnier
29f645d526 * src/bytecode.c: Fix compilation with BYTE_CODE_SAFE
(struct byte_stack): Re-add `bottom'.
(exec_byte_code): Initialize it.
2016-07-21 11:12:59 -04:00
Paul Eggert
ff3fc21e24 Port to glibc 2.24 (pre-release) + ppc64
Backport from master (Bug#24033).
Inspired by a suggestion by Florian Weimer in:
https://sourceware.org/ml/libc-alpha/2016-07/msg00425.html
* src/emacs.c (main) [__PPC64__]:
Special case for __PPC64__, which needs ASLR disabled in
dumped Emacs too.
2016-07-21 13:29:17 +02:00
Paul Eggert
a066fb1cee Fix use-after-close in connect_network_socket
* src/process.c (connect_network_socket): Don’t use
external_sock_fd after closing it.  Problem found by Coverity Scan.
2016-07-21 11:29:43 +02:00
Paul Eggert
852111f3a6 Fix lifetime bug in tzlookup
* src/editfns.c (tzlookup): Fix storage lifetime bug when
INTEGERP (zone) && settz.  Problem found by Coverity Scan.
2016-07-20 23:38:44 +02:00
Paul Eggert
60dd094a8c Remove CHECK_FRAME_FONT cruft from bytecode.c
* src/bytecode.c [CHECK_FRAME_FONT]: Do not include frame.h, xterm.h.
Remove some old ‘#if 0’ code.
2016-07-20 10:40:46 +02:00
Paul Eggert
3e71e4379c Work around GCC bug 54561 in a better way
The new approach is less selective, but also less intrusive on C code.
* src/bytecode.c, src/image.c, src/keyboard.c: Ignore -Wclobbered.
* src/conf_post.h (NONVOLATILE): Remove.  All uses removed.
2016-07-20 10:32:24 +02:00
Paul Eggert
63750fd4ed Fix port to glibc 2.24 (pre-release) + ppc64
* src/callproc.c (child_setup): Use emacs_exec_file
so that ASLR is enabled in the child process.
* src/emacs.c: Move some personality details into sys/sysdep.c.
Do not include <sys/personality.h>.
(main): Disable ASLR earlier, so that we don’t chdir twice.
* src/lisp.h (disable_address_randomization): New decl.
* src/sysdep.c (disable_address_randomization)
[HAVE_PERSONALITY_ADDR_NO_RANDOMIZE]: Move personality details
here from emacs.c.
(emacs_exec_file): New function.
2016-07-20 09:49:41 +02:00