Use offsetof instead of own definition
* lisp.h: Include <stddef.h>. (OFFSETOF): Don't define. (VECSIZE): Use offsetof instead of OFFSETOF. (PSEUDOVECSIZE): Likewise. * process.c (conv_sockaddr_to_lisp): Likewise. * alloc.c: Don't include <stddef.h>. * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
This commit is contained in:
parent
ae96d47a63
commit
89887d672a
5 changed files with 14 additions and 16 deletions
|
@ -1,5 +1,13 @@
|
|||
2010-07-11 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* lisp.h: Include <stddef.h>.
|
||||
(OFFSETOF): Don't define.
|
||||
(VECSIZE): Use offsetof instead of OFFSETOF.
|
||||
(PSEUDOVECSIZE): Likewise.
|
||||
* process.c (conv_sockaddr_to_lisp): Likewise.
|
||||
* alloc.c: Don't include <stddef.h>.
|
||||
* buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
|
||||
|
||||
* process.c: Remove obsolete comment.
|
||||
|
||||
2010-07-11 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
|
|
@ -23,10 +23,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#include <limits.h> /* For CHAR_BIT. */
|
||||
#include <setjmp.h>
|
||||
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stddef.h> /* For offsetof, used by PSEUDOVECSIZE. */
|
||||
#endif
|
||||
|
||||
#ifdef ALLOC_DEBUG
|
||||
#undef INLINE
|
||||
#endif
|
||||
|
|
|
@ -954,7 +954,7 @@ extern int last_per_buffer_idx;
|
|||
from the start of a buffer structure. */
|
||||
|
||||
#define PER_BUFFER_VAR_OFFSET(VAR) \
|
||||
((char *) &((struct buffer *)0)->VAR - (char *) ((struct buffer *)0))
|
||||
offsetof (struct buffer, VAR)
|
||||
|
||||
/* Return the index of buffer-local variable VAR. Each per-buffer
|
||||
variable has an index > 0 associated with it, except when it always
|
||||
|
|
12
src/lisp.h
12
src/lisp.h
|
@ -22,6 +22,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#define EMACS_LISP_H
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
|
||||
/* Use the configure flag --enable-checking[=LIST] to enable various
|
||||
types of run time checks for Lisp objects. */
|
||||
|
@ -784,13 +785,6 @@ struct Lisp_String
|
|||
unsigned char *data;
|
||||
};
|
||||
|
||||
#ifdef offsetof
|
||||
#define OFFSETOF(type,field) offsetof(type,field)
|
||||
#else
|
||||
#define OFFSETOF(type,field) \
|
||||
((int)((char*)&((type*)0)->field - (char*)0))
|
||||
#endif
|
||||
|
||||
struct Lisp_Vector
|
||||
{
|
||||
EMACS_UINT size;
|
||||
|
@ -801,7 +795,7 @@ struct Lisp_Vector
|
|||
/* If a struct is made to look like a vector, this macro returns the length
|
||||
of the shortest vector that would hold that struct. */
|
||||
#define VECSIZE(type) ((sizeof (type) \
|
||||
- OFFSETOF (struct Lisp_Vector, contents[0]) \
|
||||
- offsetof (struct Lisp_Vector, contents[0]) \
|
||||
+ sizeof(Lisp_Object) - 1) /* round up */ \
|
||||
/ sizeof (Lisp_Object))
|
||||
|
||||
|
@ -809,7 +803,7 @@ struct Lisp_Vector
|
|||
at the end and we need to compute the number of Lisp_Object fields (the
|
||||
ones that the GC needs to trace). */
|
||||
#define PSEUDOVECSIZE(type, nonlispfield) \
|
||||
((OFFSETOF(type, nonlispfield) - OFFSETOF(struct Lisp_Vector, contents[0])) \
|
||||
((offsetof(type, nonlispfield) - offsetof(struct Lisp_Vector, contents[0])) \
|
||||
/ sizeof (Lisp_Object))
|
||||
|
||||
/* A char-table is a kind of vectorlike, with contents are like a
|
||||
|
|
|
@ -2263,7 +2263,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
|
|||
/* Workaround for a bug in getsockname on BSD: Names bound to
|
||||
sockets in the UNIX domain are inaccessible; getsockname returns
|
||||
a zero length name. */
|
||||
if (len < OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family))
|
||||
if (len < offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family))
|
||||
return empty_unibyte_string;
|
||||
|
||||
switch (sa->sa_family)
|
||||
|
@ -2303,7 +2303,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
|
|||
}
|
||||
#endif
|
||||
default:
|
||||
len -= OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family);
|
||||
len -= offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family);
|
||||
address = Fcons (make_number (sa->sa_family),
|
||||
Fmake_vector (make_number (len), Qnil));
|
||||
p = XVECTOR (XCDR (address));
|
||||
|
|
Loading…
Add table
Reference in a new issue