diff options
| author | Eli Zaretskii | 2015-11-28 13:59:12 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2015-11-28 13:59:12 +0200 |
| commit | a63d1eca8de317b85e59732f8628eae52250901a (patch) | |
| tree | 320e684dd02e2943cb6b7e1d5d113ce22ce7e562 /src | |
| parent | b527d609d9da61497ba10e0c5fe7c6a3eb7ba7d0 (diff) | |
| download | emacs-a63d1eca8de317b85e59732f8628eae52250901a.tar.gz emacs-a63d1eca8de317b85e59732f8628eae52250901a.zip | |
Don't reject module calls with no arguments
* src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil.
Diffstat (limited to 'src')
| -rw-r--r-- | src/emacs-module.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/emacs-module.c b/src/emacs-module.c index 76c9098bab3..403e7d24d3e 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c | |||
| @@ -777,13 +777,14 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0, | |||
| 777 | DEFUN ("internal--module-call", Finternal_module_call, Sinternal_module_call, 2, 2, 0, | 777 | DEFUN ("internal--module-call", Finternal_module_call, Sinternal_module_call, 2, 2, 0, |
| 778 | doc: /* Internal function to call a module function. | 778 | doc: /* Internal function to call a module function. |
| 779 | ENVOBJ is a save pointer to a module_fun_env structure. | 779 | ENVOBJ is a save pointer to a module_fun_env structure. |
| 780 | ARGLIST is a list of arguments passed to SUBRPTR. */) | 780 | ARGLIST is a list of arguments passed to SUBRPTR, or nil. */) |
| 781 | (Lisp_Object envobj, Lisp_Object arglist) | 781 | (Lisp_Object envobj, Lisp_Object arglist) |
| 782 | { | 782 | { |
| 783 | CHECK_TYPE (SAVE_VALUEP (envobj), Qsave_value_p, envobj); | 783 | CHECK_TYPE (SAVE_VALUEP (envobj), Qsave_value_p, envobj); |
| 784 | struct Lisp_Save_Value *save_value = XSAVE_VALUE (envobj); | 784 | struct Lisp_Save_Value *save_value = XSAVE_VALUE (envobj); |
| 785 | CHECK_TYPE (save_type (save_value, 0) == SAVE_POINTER, Qsave_pointer_p, envobj); | 785 | CHECK_TYPE (save_type (save_value, 0) == SAVE_POINTER, Qsave_pointer_p, envobj); |
| 786 | CHECK_CONS (arglist); | 786 | if (!NILP (arglist)) |
| 787 | CHECK_CONS (arglist); | ||
| 787 | struct module_fun_env *envptr = XSAVE_POINTER (envobj, 0); | 788 | struct module_fun_env *envptr = XSAVE_POINTER (envobj, 0); |
| 788 | EMACS_INT len = XFASTINT (Flength (arglist)); | 789 | EMACS_INT len = XFASTINT (Flength (arglist)); |
| 789 | eassume (0 <= envptr->min_arity); | 790 | eassume (0 <= envptr->min_arity); |