summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/lisp-mnt.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2014-05-24 15:02:25 +0300
committerEli Zaretskii <eliz@gnu.org>2014-05-24 15:02:25 +0300
commitc94e3311ecf51bf3c6017ab4028debcae2a5dd6e (patch)
tree3ffd9fdea9c001a76fd1166f4d158b32cf662ab3 /lisp/emacs-lisp/lisp-mnt.el
parenta235163a6908136abd3f4574caf6e8b9a0c7dcf9 (diff)
downloademacs-c94e3311ecf51bf3c6017ab4028debcae2a5dd6e.tar.gz
Avoid marking too deep portions of stack in mark_stack.
src/alloc.c (garbage_collect_1): New function, with all of the guts of Fgarbage_collect. (mark_stack): Accept an argument END and don't mark Lisp objects on the stack beyond the address given by END. Calculation of END was moved to Fgarbage_collect. (Fgarbage_collect): Calculate the end address of the stack portion that needs to be examined by mark_stack, and pass that address to garbage_collect_1, which will pass it to mark_stack. See http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html for more details about the underlying problems. In particular, this avoids dumping Emacs with the large hash-table whose value is held in purify-flag for most of the time loadup.el runs.
Diffstat (limited to 'lisp/emacs-lisp/lisp-mnt.el')
0 files changed, 0 insertions, 0 deletions