• Stefan Monnier's avatar
    Don't GC-scan stack data redundantly. · b286858c
    Stefan Monnier authored
    * src/alloc.c (Fgarbage_collect): When using stack scanning, don't
    redundantly scan byte-code stacks, catchlist, and handlerlist.
    * src/bytecode.c (BYTE_MAINTAIN_TOP): New macros.
    (struct byte_stack): Only define `top' and `bottom' if used.
    (mark_byte_stack): Only define if used.
    (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): Nullify if BYTE_MAINTAIN_TOP
    is not set.
    (Fbyte_code): Don't set `bottom' unless BYTE_MAINTAIN_TOP is set.
    * src/lisp.h (BYTE_MARK_STACK): New macro.
    (mark_byte_stack): Only declare if BYTE_MARK_STACK is set.
    * src/term.c (OUTPUT_IF): Use OUTPUT.
    b286858c
lisp.h 125 KB