From 71b8f1fc635d9bbe00ca89457065e0c83456ac43 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sat, 19 Mar 2022 15:11:15 +0100 Subject: 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. --- src/alloc.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/alloc.c') 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) set_vector_marked (ptr); struct Lisp_Subr *subr = XSUBR (obj); mark_object (subr->native_intspec); + mark_object (subr->command_modes); mark_object (subr->native_comp_u); mark_object (subr->lambda_list); mark_object (subr->type); -- cgit v1.2.1