1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-15 15:50:57 -08:00
emacs/src
Paul Eggert e13bdfee17 Make garbage collection more conservative
Check for a pointer anywhere within the object, as opposed to just
the start of the object.  This is needed for gcc -Os -flto on
x86-64 (Bug#28213).  This change means that the garbage collector
is more conservative, and will incorrectly keep objects that it
does not need to, but that is better than incorrectly discarding
objects that should be kept.
* src/alloc.c (ADVANCE, VINDEX): Now functions, not macros;
this is easier to debug.
(setup_on_free_list): Rename from SETUP_ON_FREE_LIST.
Now a function with two args, not a macro with three.
All callers changed.
(live_string_holding, live_cons_holding, live_symbol_holding)
(live_misc_holding, live_vector_holding, live_buffer_holding):
New functions, which check for any object containing the addressed
byte, not just for an object at the given address.
(live_string_p, live_cons_p, live_symbol_p, live_misc_p)
(live_vector_p, live_buffer_p):
Redefine in terms of the new functions.
(live_float_p): Refactor slightly to match the new functions.
(mark_maybe_object, mark_maybe_pointer): Use the new functions.
Don’t bother checking mark bits, as mark_object already does that,
and omitting the checks here simplifies the code.  Although
mark_maybe_object can continue to insist that tagged pointers
still address the start of the object, mark_maybe_pointer now is
more conservative and checks for pointers anywhere into an object.
2017-08-29 14:58:49 -07:00
..
bitmaps
.dbxinit
.gdbinit Don’t assume -g3 in .gdbinit 2017-08-28 08:38:29 -07:00
alloc.c Make garbage collection more conservative 2017-08-29 14:58:49 -07:00
atimer.c A quicker check for quit 2017-01-25 21:25:37 -08:00
atimer.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
bidi.c Allow user control on what starts and ends a paragraph for bidi 2017-07-17 17:50:37 +03:00
blockinput.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
buffer.c Improve make-temp-file performance on local files 2017-08-12 15:14:45 -07:00
buffer.h Allow user control on what starts and ends a paragraph for bidi 2017-07-17 17:50:37 +03:00
bytecode.c Don’t use -Woverride-init 2017-07-05 18:59:30 -07:00
callint.c Merge with gnulib, pacifying GCC 7 2017-05-16 10:27:41 -07:00
callproc.c Simplify expand_and_dir_to_file 2017-08-25 09:32:09 -07:00
casefiddle.c More casefiddle minor fixes 2017-04-06 20:03:21 -07:00
casetab.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
category.c Use float instead of Lisp_Object for rehash_size 2017-02-21 15:39:17 -08:00
category.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ccl.c Merge with gnulib, pacifying GCC 7 2017-05-16 10:27:41 -07:00
ccl.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ChangeLog.1 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.2 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.3 Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ChangeLog.4 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.5 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.6 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.7 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.8 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.9 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.10 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.11 ; Spelling, punctuation and minor wording fixes 2017-02-16 09:18:21 -08:00
ChangeLog.12 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.13 ; ChangeLog fixes 2017-06-05 20:33:55 -04:00
character.c Convert hex digits more systematically 2017-07-05 18:59:31 -07:00
character.h Convert hex digits more systematically 2017-07-05 18:59:31 -07:00
charset.c Avoid ungetc when loading charset maps from files 2017-07-07 18:54:42 -07:00
charset.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
chartab.c Add PVSIZE function to return the size of a pseudovector. 2017-04-10 20:35:13 +02:00
cm.c Use unlocked stdio more systematically 2017-06-22 11:22:53 -07:00
cm.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
cmds.c Respect comment-auto-fill-only-comments 2017-08-05 18:31:39 -06:00
coding.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
coding.h Tighten recently-added UTF-8 check 2017-04-17 10:20:39 -07:00
commands.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
composite.c Pacify --enable-gcc-warnings --with-x-toolkit=no 2017-05-17 10:59:02 -07:00
composite.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
conf_post.h Port cleanup check to Oracle Studio 12.5 2017-06-14 11:01:41 -07:00
COPYING
cygw32.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
cygw32.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
data.c Remove Lisp_Misc_Float 2017-06-11 17:05:29 -07:00
dbusbind.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
decompress.c Replace QUIT with maybe_quit 2017-01-25 21:25:37 -08:00
deps.mk Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dired.c Fix file-attributes race on GNU hosts 2017-08-25 13:19:45 -07:00
dispextern.h Support display of line numbers natively 2017-07-08 10:49:36 +03:00
dispnew.c Provide additional support for child frames 2017-06-25 11:33:25 +02:00
disptab.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
doc.c Reimplement module functions 2017-05-20 15:32:52 +02:00
doprnt.c Fix bug with "%%" in error format 2017-05-31 16:50:24 -07:00
dosfns.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dosfns.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dynlib.c Fix emacs-module-tests on MS-Windows 2017-06-05 19:16:04 +03:00
dynlib.h Use ATTRIBUTE_MAY_ALIAS where alias violations are likely 2017-06-04 19:50:50 +02:00
editfns.c Convert hex digits more systematically 2017-07-05 18:59:31 -07:00
emacs-icon.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
emacs-module.c Minor simplification of module_free_global_ref 2017-07-10 00:33:30 +02:00
emacs-module.h.in Also mark module init function as noexcept if possible 2017-07-01 20:02:24 +02:00
emacs.c Align stack bottom properly. 2017-08-29 14:58:48 -07:00
emacsgtkfixed.c Use 'char *FOO' instead of 'char* FOO' 2017-02-18 18:17:03 -08:00
emacsgtkfixed.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
epaths.in Update copyright year to 2017 2016-12-31 19:42:26 -08:00
eval.c Implement EXCL of write-region for Tramp 2017-08-12 12:30:39 +02:00
fileio.c Do not munge contents of local symbolic links 2017-08-26 18:36:38 -07:00
filelock.c Improve make-temp-file performance on local files 2017-08-18 20:37:31 -07:00
firstfile.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
floatfns.c Remove isnan hack for Solaris 10 gcc 3.4.3 2017-03-07 09:51:16 -08:00
fns.c Let `define-symbol-prop' take effect during compilation 2017-08-07 18:54:49 -04:00
font.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
font.h Add PVSIZE function to return the size of a pseudovector. 2017-04-10 20:35:13 +02:00
fontset.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
fontset.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
frame.c Add ability to change macOS WM theme (bug#27973) 2017-08-23 19:57:00 +01:00
frame.h Add ability to change macOS WM theme (bug#27973) 2017-08-23 19:57:00 +01:00
fringe.c ; Minor fix of recent change in fringe.c 2017-02-19 18:40:52 +02:00
ftcrfont.c Use memset, not bzero 2017-07-16 16:29:12 -07:00
ftfont.c Avoid abort in ftfont.c due to faulty fonts 2017-04-11 13:06:30 +03:00
ftfont.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftxfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
getpagesize.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
gfilenotify.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
gmalloc.c Remove malloc_find_address relic 2017-06-21 12:18:56 -07:00
gnutls.c Fix version numbers for some GnuTLS features 2017-08-03 18:36:15 -07:00
gnutls.h Fix version numbers for some GnuTLS features 2017-08-03 18:36:15 -07:00
gtkutil.c Fix GdkSettings-related deprecation warnings 2017-08-27 15:00:18 +02:00
gtkutil.h Remove usage of the GDK_SCALE variable 2017-07-17 16:58:57 +02:00
image.c src/image.c (compute_image_size): Remove superfluous checks. 2017-07-15 03:21:07 +02:00
indent.c Fix vertical cursor motion across too wide images 2017-08-13 17:49:07 +03:00
indent.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
inotify.c Depromiscuify inotify with IN_MASK_ADD 2017-05-27 11:14:30 -07:00
insdel.c Fix bidi paragraph direction when inserting text at newline 2017-03-13 18:15:09 +02:00
intervals.c Avoid losing the buffer restriction in flyspell-mode 2017-08-21 20:21:28 +03:00
intervals.h Fix core dump in substitute-object-in-subtree 2017-07-09 16:05:13 -07:00
keyboard.c Don’t worry about unlink if errno == ENOENT 2017-08-01 17:24:50 -07:00
keyboard.h A quicker check for quit 2017-01-25 21:25:37 -08:00
keymap.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
keymap.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
kqueue.c Fix file-attributes race on GNU hosts 2017-08-25 13:19:45 -07:00
lastfile.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
lisp.h Simplify expand_and_dir_to_file 2017-08-25 09:32:09 -07:00
lread.c Signal error for symbol names with strange quotes (Bug#2967) 2017-07-22 08:47:31 -04:00
macfont.h Fix cross macOS version building (bug#28222) 2017-08-29 17:19:05 +01:00
macfont.m Fix cross macOS version building (bug#28222) 2017-08-29 17:19:05 +01:00
macros.c Replace QUIT with maybe_quit 2017-01-25 21:25:37 -08:00
macros.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
macuvs.h
Makefile.in Fix the 'versionclean' target in src/Makefile 2017-08-21 19:28:55 +03:00
marker.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
menu.c Use 'char *FOO' instead of 'char* FOO' 2017-02-18 18:17:03 -08:00
menu.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
minibuf.c Preserve this-command-keys across recursive-edit invocations 2017-07-28 15:40:25 +03:00
module-env-25.h * src/module-env-25.h (copy_string_contents): Fix comment. 2017-07-01 20:02:24 +02:00
module-env-26.h emacs-module.h: Create emacs_env_26 2017-06-17 19:16:14 +02:00
msdos.c Fix completion on directory names on MS-DOS/MS-Windows 2017-08-12 14:44:20 +03:00
msdos.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsfns.m Add ability to change macOS WM theme (bug#27973) 2017-08-23 19:57:00 +01:00
nsfont.m Use 'char *FOO' instead of 'char* FOO' 2017-02-18 18:17:03 -08:00
nsgui.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsimage.m Use lisp type in log message (bug#28176) 2017-08-23 21:13:22 +01:00
nsmenu.m Allow use of run-time OS version checks on macOS (bug#27810) 2017-08-16 20:56:55 +01:00
nsselect.m Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsterm.h Add ability to change macOS WM theme (bug#27973) 2017-08-23 19:57:00 +01:00
nsterm.m Enable thin font smoothing in macOS (bug#28222) 2017-08-29 17:19:04 +01:00
print.c Improve stack-overflow heuristic on GNU/Linux 2017-07-14 04:57:18 -07:00
process.c Simplify remove_slash_colon 2017-08-28 21:51:38 -07:00
process.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
profiler.c Use float instead of Lisp_Object for rehash_size 2017-02-21 15:39:17 -08:00
puresize.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ralloc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
README Update copyright year to 2017 2016-12-31 19:42:26 -08:00
regex.c ; Don't use non-ASCII quotes in comments 2017-07-30 22:42:18 +03:00
regex.h ; Don't use non-ASCII quotes in comments 2017-07-30 22:42:18 +03:00
region-cache.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
region-cache.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
scroll.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
search.c Merge with gnulib, pacifying GCC 7 2017-05-16 10:27:41 -07:00
sheap.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sheap.h Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
sound.c Compare and round more carefully 2017-03-04 23:18:39 -08:00
syntax.c Merge with gnulib, pacifying GCC 7 2017-05-16 10:27:41 -07:00
syntax.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
sysdep.c Fix file-attributes race on GNU hosts 2017-08-25 13:19:45 -07:00
sysselect.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
syssignal.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sysstdio.h Use unlocked stdio more systematically 2017-06-22 11:22:53 -07:00
systhread.c Fix threads on NS (bug#25265) 2017-07-01 12:58:49 +01:00
systhread.h Remove a few unused C functions 2017-02-26 09:58:25 -08:00
systime.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
systty.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
syswait.h Attempt to work around macOS vfork bug 2017-05-19 00:13:27 -07:00
term.c Support display of line numbers natively 2017-07-08 10:49:36 +03:00
termcap.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
termchar.h Remove unused TN_max_pairs field 2017-02-18 12:56:12 +02:00
termhooks.h Frame movement, focus and hook related changes 2017-04-11 12:37:26 +02:00
terminal.c Tighten recently-added UTF-8 check 2017-04-17 10:20:39 -07:00
terminfo.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
termopts.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
textprop.c Replace QUIT with maybe_quit 2017-01-25 21:25:37 -08:00
thread.c Improve stack-overflow heuristic on GNU/Linux 2017-07-14 04:57:18 -07:00
thread.h Improve stack-overflow heuristic on GNU/Linux 2017-07-14 04:57:18 -07:00
tparam.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
tparam.h Support 24-bit direct colors on text terminals 2017-02-18 13:04:55 +02:00
undo.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexaix.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexcoff.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexcw.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
unexec.h Make src headers idempotent and standalone 2015-10-16 14:56:11 -07:00
unexelf.c Fix crash when built by GNU Gold linker on x86 2017-06-20 09:01:43 -07:00
unexhp9k800.c Consistently use min and max macros from lisp.h. 2014-10-03 08:35:10 +04:00
unexmacosx.c Remove unused function print_regions 2017-05-21 21:49:25 +02:00
unexsol.c Include-file cleanup for src directory 2015-10-20 18:35:53 -07:00
unexw32.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
vm-limit.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w16select.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32.c ; * src/w32.c (faccessat): Fix last change. (Bug#28207) 2017-08-25 18:01:19 +03:00
w32.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32common.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32console.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32fns.c Fix crashing emacs-module tests on MS-Windows 2017-08-09 20:15:46 +03:00
w32font.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
w32font.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32gui.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32heap.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32heap.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32inevt.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32inevt.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32menu.c Avoid compilation warnings 2017-05-02 11:04:33 +03:00
w32notify.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
w32proc.c Avoid spinning waiting for git-gui.exe on Windows 2017-08-29 21:53:49 +03:00
w32reg.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32select.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32select.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32term.c Avoid floating-point exceptions while drawing underwave 2017-08-21 17:46:42 +03:00
w32term.h Provide additional support for child frames 2017-06-25 11:33:25 +02:00
w32uniscribe.c Avoid quitting inside a critical section on MS-Windows 2017-02-23 18:15:05 +02:00
w32xfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
widget.c Fix crash when built by GNU Gold linker on x86 2017-06-20 09:01:43 -07:00
widget.h Fix crash when built by GNU Gold linker on x86 2017-06-20 09:01:43 -07:00
widgetprv.h Use 'char *FOO' instead of 'char* FOO' 2017-02-18 18:17:03 -08:00
window.c Spelling fixes 2017-07-06 00:24:56 -07:00
window.h Provide additional support for child frames 2017-06-25 11:33:25 +02:00
xdisp.c Fix infinite recursion under prettify-symbols-mode and linum-mode 2017-08-07 20:47:53 +03:00
xfaces.c Use unlocked stdio more systematically 2017-06-22 11:22:53 -07:00
xfns.c Stop using deprecated GdkScreen monitor functions in newer GDK 2017-08-27 14:05:40 +02:00
xfont.c Add an optional testfn parameter to assoc 2017-07-11 10:07:16 +02:00
xftfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xgselect.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xgselect.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xmenu.c Get positions of menus and tooltips right on HiDPI 2017-07-17 16:58:57 +02:00
xml.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xrdb.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xselect.c Replace QUIT with maybe_quit 2017-01-25 21:25:37 -08:00
xsettings.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xsettings.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xsmfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xterm.c Always use gtk_window_move in new versions 2017-08-27 14:45:58 +02:00
xterm.h Fix previous xterm.h change for non-gtk builds 2017-08-27 10:06:30 -07:00
xwidget.c Verify xwidget USE_LSB_TAG assumption 2017-02-20 13:04:09 -08:00
xwidget.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2017 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.