• Alan Mackenzie's avatar
    Enhance struct Lisp_Subr to hold the alternative "BC_" function. · b071398b
    Alan Mackenzie authored
    Also fix a GC bug, where symbols with position were not being disabled.
    
    * src/lisp.h (union Lisp_Function): New type.
    (struct Lisp_Subr): Add fields normal_function, BC_function, and next.
    (DEFUN): Setup all three function fields to the subr (BC_function is still a
    dummy), set field next to NULL.
    
    * src/alloc.c (Fgarbage_collect): Move the binding of
    Qsymbols_with_pos_enabled to garbage_collect_1 so that it gets bound when GC
    is invoked via garbage_collect.
    
    * src/lread.c (subr_ptr, using_BC_subrs): New static variables.
    (Fswitch_to_BC_subrs, Fswitch_to_normal_subrs): New defuns.
    (defsubr): Chain new subr to previous using field next and variable subr_ptr.
    (init_lread): Initialise subr_ptr to NULL.
    (syms_of_lread): Create subrs Sswitch_to_BC_subrs and Sswitch_to_normal_subrs.
    
    * src/pdumper.c (dump_subr): Enhance to dump struct Lisp_Subr's new fields.
    Update the expected value of HASH_Lisp_Subr_xxxxxxxxxx.
    (dump_vectorlike): Also dump PVEC_SYMBOL_WITH_POSes.
    b071398b
Name
Last commit
Last update
admin Loading commit data...
build-aux Loading commit data...
doc Loading commit data...
etc Loading commit data...
leim Loading commit data...
lib Loading commit data...
lib-src Loading commit data...
lisp Loading commit data...
lwlib Loading commit data...
m4 Loading commit data...
modules Loading commit data...
msdos Loading commit data...
nextstep Loading commit data...
nt Loading commit data...
oldXMenu Loading commit data...
src Loading commit data...
test Loading commit data...
.clang-format Loading commit data...
.dir-locals.el Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
BUGS Loading commit data...
CONTRIBUTE Loading commit data...
COPYING Loading commit data...
ChangeLog.1 Loading commit data...
ChangeLog.2 Loading commit data...
ChangeLog.3 Loading commit data...
GNUmakefile Loading commit data...
INSTALL Loading commit data...
INSTALL.REPO Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
autogen.sh Loading commit data...
config.bat Loading commit data...
configure.ac Loading commit data...
make-dist Loading commit data...