[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r100736: Make the function member of
From: |
Dan Nicolaescu |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r100736: Make the function member of Lisp_Subr use standard C prototypes. |
Date: |
Tue, 06 Jul 2010 19:49:37 -0700 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100736
committer: Dan Nicolaescu <address@hidden>
branch nick: trunk
timestamp: Tue 2010-07-06 19:49:37 -0700
message:
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.
modified:
src/ChangeLog
src/eval.c
src/lisp.h
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-07-06 20:24:57 +0000
+++ b/src/ChangeLog 2010-07-07 02:49:37 +0000
@@ -1,3 +1,11 @@
+2010-07-07 Dan Nicolaescu <address@hidden>
+
+ Make the function member of Lisp_Subr use standard C prototypes.
+ * lisp.h (struct Lisp_Subr): Use a union for the function member.
+ (DECL_ALIGN): Add a cast for the function.
+ * eval.c (Feval, Ffuncall): Use the proper type for each type
+ function call.
+
2010-07-06 Chong Yidong <address@hidden>
* fringe.c (draw_fringe_bitmap_1): Use lookup_named_face to get
=== modified file 'src/eval.c'
--- a/src/eval.c 2010-07-05 10:36:06 +0000
+++ b/src/eval.c 2010-07-07 02:49:37 +0000
@@ -2330,7 +2330,7 @@
if (XSUBR (fun)->max_args == UNEVALLED)
{
backtrace.evalargs = 0;
- val = (*XSUBR (fun)->function) (args_left);
+ val = (XSUBR (fun)->function.a1) (args_left);
goto done;
}
@@ -2356,7 +2356,7 @@
backtrace.args = vals;
backtrace.nargs = XINT (numargs);
- val = (*XSUBR (fun)->function) (XINT (numargs), vals);
+ val = (XSUBR (fun)->function.am) (XINT (numargs), vals);
UNGCPRO;
goto done;
}
@@ -2380,40 +2380,40 @@
switch (i)
{
case 0:
- val = (*XSUBR (fun)->function) ();
+ val = (XSUBR (fun)->function.a0) ();
goto done;
case 1:
- val = (*XSUBR (fun)->function) (argvals[0]);
+ val = (XSUBR (fun)->function.a1) (argvals[0]);
goto done;
case 2:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1]);
+ val = (XSUBR (fun)->function.a2) (argvals[0], argvals[1]);
goto done;
case 3:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1],
- argvals[2]);
+ val = (XSUBR (fun)->function.a3) (argvals[0], argvals[1],
+ argvals[2]);
goto done;
case 4:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1],
- argvals[2], argvals[3]);
+ val = (XSUBR (fun)->function.a4) (argvals[0], argvals[1],
+ argvals[2], argvals[3]);
goto done;
case 5:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2],
- argvals[3], argvals[4]);
+ val = (XSUBR (fun)->function.a5) (argvals[0], argvals[1], argvals[2],
+ argvals[3], argvals[4]);
goto done;
case 6:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2],
- argvals[3], argvals[4], argvals[5]);
+ val = (XSUBR (fun)->function.a6) (argvals[0], argvals[1], argvals[2],
+ argvals[3], argvals[4], argvals[5]);
goto done;
case 7:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2],
- argvals[3], argvals[4], argvals[5],
- argvals[6]);
+ val = (XSUBR (fun)->function.a7) (argvals[0], argvals[1], argvals[2],
+ argvals[3], argvals[4], argvals[5],
+ argvals[6]);
goto done;
case 8:
- val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2],
- argvals[3], argvals[4], argvals[5],
- argvals[6], argvals[7]);
+ val = (XSUBR (fun)->function.a8) (argvals[0], argvals[1], argvals[2],
+ argvals[3], argvals[4], argvals[5],
+ argvals[6], argvals[7]);
goto done;
default:
@@ -3011,7 +3011,7 @@
if (XSUBR (fun)->max_args == MANY)
{
- val = (*XSUBR (fun)->function) (numargs, args + 1);
+ val = (XSUBR (fun)->function.am) (numargs, args + 1);
goto done;
}
@@ -3027,44 +3027,44 @@
switch (XSUBR (fun)->max_args)
{
case 0:
- val = (*XSUBR (fun)->function) ();
+ val = (XSUBR (fun)->function.a0) ();
goto done;
case 1:
- val = (*XSUBR (fun)->function) (internal_args[0]);
+ val = (XSUBR (fun)->function.a1) (internal_args[0]);
goto done;
case 2:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1]);
+ val = (XSUBR (fun)->function.a2) (internal_args[0], internal_args[1]);
goto done;
case 3:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2]);
+ val = (XSUBR (fun)->function.a3) (internal_args[0], internal_args[1],
+ internal_args[2]);
goto done;
case 4:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2], internal_args[3]);
+ val = (XSUBR (fun)->function.a4) (internal_args[0], internal_args[1],
+ internal_args[2], internal_args[3]);
goto done;
case 5:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2], internal_args[3],
- internal_args[4]);
+ val = (XSUBR (fun)->function.a5) (internal_args[0], internal_args[1],
+ internal_args[2], internal_args[3],
+ internal_args[4]);
goto done;
case 6:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2], internal_args[3],
- internal_args[4], internal_args[5]);
+ val = (XSUBR (fun)->function.a6) (internal_args[0], internal_args[1],
+ internal_args[2], internal_args[3],
+ internal_args[4], internal_args[5]);
goto done;
case 7:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2], internal_args[3],
- internal_args[4], internal_args[5],
- internal_args[6]);
+ val = (XSUBR (fun)->function.a7) (internal_args[0], internal_args[1],
+ internal_args[2], internal_args[3],
+ internal_args[4], internal_args[5],
+ internal_args[6]);
goto done;
case 8:
- val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2], internal_args[3],
- internal_args[4], internal_args[5],
- internal_args[6], internal_args[7]);
+ val = (XSUBR (fun)->function.a8) (internal_args[0], internal_args[1],
+ internal_args[2], internal_args[3],
+ internal_args[4], internal_args[5],
+ internal_args[6], internal_args[7]);
goto done;
default:
=== modified file 'src/lisp.h'
--- a/src/lisp.h 2010-07-06 13:33:34 +0000
+++ b/src/lisp.h 2010-07-07 02:49:37 +0000
@@ -965,7 +965,18 @@
struct Lisp_Subr
{
EMACS_UINT size;
- Lisp_Object (*function) ();
+ union {
+ Lisp_Object (*a0) (void);
+ Lisp_Object (*a1) (Lisp_Object);
+ Lisp_Object (*a2) (Lisp_Object, Lisp_Object);
+ Lisp_Object (*a3) (Lisp_Object, Lisp_Object, Lisp_Object);
+ Lisp_Object (*a4) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ Lisp_Object (*a5) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
+ Lisp_Object (*a6) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object);
+ Lisp_Object (*a7) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object);
+ Lisp_Object (*a8) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ Lisp_Object (*am) (int, Lisp_Object *);
+ } function;
short min_args, max_args;
const char *symbol_name;
char *intspec;
@@ -1768,7 +1779,7 @@
Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \
DECL_ALIGN (struct Lisp_Subr, sname) = \
{ PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \
- fnname, minargs, maxargs, lname, intspec, 0}; \
+ (Lisp_Object(*)(void)) fnname, minargs, maxargs, lname, intspec, 0}; \
Lisp_Object fnname
/* Note that the weird token-substitution semantics of ANSI C makes
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r100736: Make the function member of Lisp_Subr use standard C prototypes.,
Dan Nicolaescu <=