diff options
| author | Dan Nicolaescu | 2010-07-06 19:49:37 -0700 |
|---|---|---|
| committer | Dan Nicolaescu | 2010-07-06 19:49:37 -0700 |
| commit | c0f2f16b6a0801ec30f518db6bcf7f27bb643122 (patch) | |
| tree | ca7fe1bae3e14ab53a473fb3b6a3ebac321fad20 /src/lisp.h | |
| parent | 67aecef9f5192d2ab0cee83befc4e2c31fcdf806 (diff) | |
| download | emacs-c0f2f16b6a0801ec30f518db6bcf7f27bb643122.tar.gz emacs-c0f2f16b6a0801ec30f518db6bcf7f27bb643122.zip | |
Make the function member of Lisp_Subr use standard C prototypes.
* src/lisp.h (struct Lisp_Subr): Use a union for the function member.
(DECL_ALIGN): Add a cast for the function.
* src/eval.c (Feval, Ffuncall): Use the proper type for each type
function call.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lisp.h b/src/lisp.h index 4874985abf4..3a3cde27897 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -965,7 +965,18 @@ struct Lisp_Bool_Vector | |||
| 965 | struct Lisp_Subr | 965 | struct Lisp_Subr |
| 966 | { | 966 | { |
| 967 | EMACS_UINT size; | 967 | EMACS_UINT size; |
| 968 | Lisp_Object (*function) (); | 968 | union { |
| 969 | Lisp_Object (*a0) (void); | ||
| 970 | Lisp_Object (*a1) (Lisp_Object); | ||
| 971 | Lisp_Object (*a2) (Lisp_Object, Lisp_Object); | ||
| 972 | Lisp_Object (*a3) (Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 973 | Lisp_Object (*a4) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 974 | Lisp_Object (*a5) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 975 | Lisp_Object (*a6) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 976 | Lisp_Object (*a7) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 977 | Lisp_Object (*a8) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); | ||
| 978 | Lisp_Object (*am) (int, Lisp_Object *); | ||
| 979 | } function; | ||
| 969 | short min_args, max_args; | 980 | short min_args, max_args; |
| 970 | const char *symbol_name; | 981 | const char *symbol_name; |
| 971 | char *intspec; | 982 | char *intspec; |
| @@ -1768,7 +1779,7 @@ typedef struct { | |||
| 1768 | Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ | 1779 | Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ |
| 1769 | DECL_ALIGN (struct Lisp_Subr, sname) = \ | 1780 | DECL_ALIGN (struct Lisp_Subr, sname) = \ |
| 1770 | { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ | 1781 | { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ |
| 1771 | fnname, minargs, maxargs, lname, intspec, 0}; \ | 1782 | (Lisp_Object(*)(void)) fnname, minargs, maxargs, lname, intspec, 0}; \ |
| 1772 | Lisp_Object fnname | 1783 | Lisp_Object fnname |
| 1773 | 1784 | ||
| 1774 | /* Note that the weird token-substitution semantics of ANSI C makes | 1785 | /* Note that the weird token-substitution semantics of ANSI C makes |