• Eli Zaretskii's avatar
    Avoid marking too deep portions of stack in mark_stack. · c94e3311
    Eli Zaretskii authored
     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
     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.
alloc.c 191 KB