diff options
| author | Philipp Stephani | 2019-04-24 23:12:35 +0200 |
|---|---|---|
| committer | Philipp Stephani | 2019-04-24 23:12:35 +0200 |
| commit | d2e1bac47816fa1f48482faeebf7fa562a5b0e40 (patch) | |
| tree | 85eda43e37e3df0b74a2d82cf313c28bbfefa27c /src/lisp.h | |
| parent | 4c90369d77d3db1cbd37df7857e4706176fd7ba2 (diff) | |
| download | emacs-d2e1bac47816fa1f48482faeebf7fa562a5b0e40.tar.gz emacs-d2e1bac47816fa1f48482faeebf7fa562a5b0e40.zip | |
Move definition of Lisp_Module_Function to emacs-module.c.
* src/lisp.h: Remove include of emacs-module.h. Remove definition
of Lisp_Module_Function structure.
* src/emacs-module.c (module_function_documentation)
(module_function_address): New accessor functions for module function
fields.
(emacs_subr, struct Lisp_Module_Function): Move from lisp.h.
* src/print.c (print_vectorlike):
* src/doc.c (Fdocumentation): Use the new accessor functions.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/src/lisp.h b/src/lisp.h index 70b2aa270e0..8dc44291a8f 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -4151,32 +4151,8 @@ extern void *unexec_realloc (void *, size_t); | |||
| 4151 | extern void unexec_free (void *); | 4151 | extern void unexec_free (void *); |
| 4152 | #endif | 4152 | #endif |
| 4153 | 4153 | ||
| 4154 | #define EMACS_MODULE_GMP | 4154 | /* The definition of Lisp_Module_Function depends on emacs-module.h, |
| 4155 | #include "emacs-module.h" | 4155 | so we don't define it here. It's defined in emacs-module.c. */ |
| 4156 | |||
| 4157 | /* Function prototype for the module Lisp functions. */ | ||
| 4158 | typedef emacs_value (*emacs_subr) (emacs_env *, ptrdiff_t, | ||
| 4159 | emacs_value [], void *); | ||
| 4160 | |||
| 4161 | /* Module function. */ | ||
| 4162 | |||
| 4163 | /* A function environment is an auxiliary structure returned by | ||
| 4164 | `module_make_function' to store information about a module | ||
| 4165 | function. It is stored in a pseudovector. Its members correspond | ||
| 4166 | to the arguments given to `module_make_function'. */ | ||
| 4167 | |||
| 4168 | struct Lisp_Module_Function | ||
| 4169 | { | ||
| 4170 | union vectorlike_header header; | ||
| 4171 | |||
| 4172 | /* Fields traced by GC; these must come first. */ | ||
| 4173 | Lisp_Object documentation; | ||
| 4174 | |||
| 4175 | /* Fields ignored by GC. */ | ||
| 4176 | ptrdiff_t min_arity, max_arity; | ||
| 4177 | emacs_subr subr; | ||
| 4178 | void *data; | ||
| 4179 | } GCALIGNED_STRUCT; | ||
| 4180 | 4156 | ||
| 4181 | INLINE bool | 4157 | INLINE bool |
| 4182 | MODULE_FUNCTIONP (Lisp_Object o) | 4158 | MODULE_FUNCTIONP (Lisp_Object o) |
| @@ -4198,6 +4174,8 @@ extern Lisp_Object make_user_ptr (void (*finalizer) (void *), void *p); | |||
| 4198 | /* Defined in emacs-module.c. */ | 4174 | /* Defined in emacs-module.c. */ |
| 4199 | extern Lisp_Object funcall_module (Lisp_Object, ptrdiff_t, Lisp_Object *); | 4175 | extern Lisp_Object funcall_module (Lisp_Object, ptrdiff_t, Lisp_Object *); |
| 4200 | extern Lisp_Object module_function_arity (const struct Lisp_Module_Function *); | 4176 | extern Lisp_Object module_function_arity (const struct Lisp_Module_Function *); |
| 4177 | extern Lisp_Object module_function_documentation (const struct Lisp_Module_Function *); | ||
| 4178 | extern void *module_function_address (const struct Lisp_Module_Function *); | ||
| 4201 | extern void mark_modules (void); | 4179 | extern void mark_modules (void); |
| 4202 | extern void init_module_assertions (bool); | 4180 | extern void init_module_assertions (bool); |
| 4203 | extern void syms_of_module (void); | 4181 | extern void syms_of_module (void); |