• Paul Eggert's avatar
    Assume GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS · 60d1b187
    Paul Eggert authored
    This removes the need for GCPRO1 etc.  Suggested by Stefan Monnier in:
    http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html
    * doc/lispref/internals.texi (Writing Emacs Primitives):
    * etc/NEWS:
    Document the change.
    * src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies)
    (nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live)
    (Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise):
    * src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]:
    * src/eval.c (gcpro_level) [DEBUG_GCPRO]:
    * src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK)
    (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
    (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
    (BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6)
    (GCPRO7, UNGCPRO, RETURN_UNGCPRO):
    Remove.  All uses removed.  The code now assumes
    GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
    * src/bytecode.c (relocate_byte_stack):
    Rename from unmark_byte_stack, since it now only relocates.
    All callers changed.
    * src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2
    with GCPROs removed.
    * src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1.
    * test/automated/finalizer-tests.el (finalizer-basic)
    (finalizer-circular-reference, finalizer-cross-reference)
    (finalizer-error):
    * test/automated/generator-tests.el (cps-test-iter-close-finalizer):
    Remove tests, as they depend on gc-precise.
    60d1b187
window.c 240 KB