aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorPhilipp Stephani2017-04-22 18:04:29 +0200
committerPhilipp2017-05-06 21:29:08 +0200
commita3e9694078e24d19db860aa4ff8dec8bc34b59b7 (patch)
tree235bf0857ebe0011ffd0b9cbef5f8daa242efbc1 /src/data.c
parent5e47c2e52b9b7616668c5586084e0128b231272a (diff)
downloademacs-a3e9694078e24d19db860aa4ff8dec8bc34b59b7.tar.gz
emacs-a3e9694078e24d19db860aa4ff8dec8bc34b59b7.zip
Introduce new misc type for module function
This resolves a couple of FIXMEs in emacs-module.c. * src/lisp.h (MODULE_FUNCTIONP, XMODULE_FUNCTION): New functions. * src/alloc.c (make_module_function): New function. (mark_object): GC support. * src/data.c (Ftype_of, syms_of_data): Handle module function type. * src/print.c (print_object): Print support for new type. * src/emacs-module.c (module_make_function, Finternal_module_call): Use new module function type, remove FIXMEs. (module_format_fun_env): Adapt and give it external linkage. * test/src/emacs-module-tests.el (module-function-object): Add unit test.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index 141b26ccf35..44f7ba0e881 100644
--- a/src/data.c
+++ b/src/data.c
@@ -233,6 +233,8 @@ for example, (type-of 1) returns `integer'. */)
233 case Lisp_Misc_Finalizer: 233 case Lisp_Misc_Finalizer:
234 return Qfinalizer; 234 return Qfinalizer;
235#ifdef HAVE_MODULES 235#ifdef HAVE_MODULES
236 case Lisp_Misc_Module_Function:
237 return Qmodule_function;
236 case Lisp_Misc_User_Ptr: 238 case Lisp_Misc_User_Ptr:
237 return Quser_ptr; 239 return Quser_ptr;
238#endif 240#endif
@@ -3729,6 +3731,7 @@ syms_of_data (void)
3729 DEFSYM (Qoverlay, "overlay"); 3731 DEFSYM (Qoverlay, "overlay");
3730 DEFSYM (Qfinalizer, "finalizer"); 3732 DEFSYM (Qfinalizer, "finalizer");
3731#ifdef HAVE_MODULES 3733#ifdef HAVE_MODULES
3734 DEFSYM (Qmodule_function, "module-function");
3732 DEFSYM (Quser_ptr, "user-ptr"); 3735 DEFSYM (Quser_ptr, "user-ptr");
3733#endif 3736#endif
3734 DEFSYM (Qfloat, "float"); 3737 DEFSYM (Qfloat, "float");