diff options
| author | Lars Ingebrigtsen | 2022-03-19 15:11:15 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2022-03-19 15:11:37 +0100 |
| commit | 71b8f1fc635d9bbe00ca89457065e0c83456ac43 (patch) | |
| tree | 49edc7bebd20340555baf2a28ef8a4dcd05504db /src/alloc.c | |
| parent | c79e0188e849715a7c4dc306c93ad8d0b3517d32 (diff) | |
| download | emacs-71b8f1fc635d9bbe00ca89457065e0c83456ac43.tar.gz emacs-71b8f1fc635d9bbe00ca89457065e0c83456ac43.zip | |
Make `command-modes' work for (native-compiled) subrs, too
* lisp/emacs-lisp/comp.el (comp-func): Add a command-modes slot.
(comp-spill-lap-function, comp-intern-func-in-ctxt): Fill it.
(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Use it.
* src/alloc.c (mark_object): Mark the command_modes slot.
* src/comp.c (make_subr): Add a command_modes parameter.
(Fcomp__register_lambda): Use it.
(Fcomp__register_subr): Ditto.
* src/data.c (Fcommand_modes): Output the command_modes data for subrs
(bug#54437).
* src/lisp.h (GCALIGNED_STRUCT): Add a command_modes slot.
* src/pdumper.c (dump_subr): Update hash.
(dump_subr): Dump the command_modes slot.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index c19e3dabb6e..b0fbc91fe50 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6844,6 +6844,7 @@ mark_object (Lisp_Object arg) | |||
| 6844 | set_vector_marked (ptr); | 6844 | set_vector_marked (ptr); |
| 6845 | struct Lisp_Subr *subr = XSUBR (obj); | 6845 | struct Lisp_Subr *subr = XSUBR (obj); |
| 6846 | mark_object (subr->native_intspec); | 6846 | mark_object (subr->native_intspec); |
| 6847 | mark_object (subr->command_modes); | ||
| 6847 | mark_object (subr->native_comp_u); | 6848 | mark_object (subr->native_comp_u); |
| 6848 | mark_object (subr->lambda_list); | 6849 | mark_object (subr->lambda_list); |
| 6849 | mark_object (subr->type); | 6850 | mark_object (subr->type); |