mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-27 07:41:28 -08:00
(struct Lisp_Cons): Make cdr a union.
(XCDR_AS_LVALUE): Adjust. (struct Lisp_Float): Make data a union. (XFLOAT_DATA): Adjust.
This commit is contained in:
parent
8014739509
commit
3a623feeb5
1 changed files with 22 additions and 8 deletions
30
src/lisp.h
30
src/lisp.h
|
|
@ -600,9 +600,19 @@ struct Lisp_Cons
|
|||
/* Please do not use the names of these elements in code other
|
||||
than the core lisp implementation. Use XCAR and XCDR below. */
|
||||
#ifdef HIDE_LISP_IMPLEMENTATION
|
||||
Lisp_Object car_, cdr_;
|
||||
Lisp_Object car_;
|
||||
union
|
||||
{
|
||||
Lisp_Object cdr_;
|
||||
struct Lisp_Cons *chain;
|
||||
} u;
|
||||
#else
|
||||
Lisp_Object car, cdr;
|
||||
Lisp_Object car;
|
||||
union
|
||||
{
|
||||
Lisp_Object cdr;
|
||||
struct Lisp_Cons *chain;
|
||||
} u;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
@ -615,10 +625,10 @@ struct Lisp_Cons
|
|||
invalidated at arbitrary points.) */
|
||||
#ifdef HIDE_LISP_IMPLEMENTATION
|
||||
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car_)
|
||||
#define XCDR_AS_LVALUE(c) (XCONS ((c))->cdr_)
|
||||
#define XCDR_AS_LVALUE(c) (XCONS ((c))->u.cdr_)
|
||||
#else
|
||||
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car)
|
||||
#define XCDR_AS_LVALUE(c) (XCONS ((c))->cdr)
|
||||
#define XCDR_AS_LVALUE(c) (XCONS ((c))->u.cdr)
|
||||
#endif
|
||||
|
||||
/* Use these from normal code. */
|
||||
|
|
@ -1275,17 +1285,21 @@ union Lisp_Misc
|
|||
/* Lisp floating point type */
|
||||
struct Lisp_Float
|
||||
{
|
||||
union
|
||||
{
|
||||
#ifdef HIDE_LISP_IMPLEMENTATION
|
||||
double data_;
|
||||
double data_;
|
||||
#else
|
||||
double data;
|
||||
double data;
|
||||
#endif
|
||||
struct Lisp_Float *chain;
|
||||
} u;
|
||||
};
|
||||
|
||||
#ifdef HIDE_LISP_IMPLEMENTATION
|
||||
#define XFLOAT_DATA(f) (XFLOAT (f)->data_)
|
||||
#define XFLOAT_DATA(f) (XFLOAT (f)->u.data_)
|
||||
#else
|
||||
#define XFLOAT_DATA(f) (XFLOAT (f)->data)
|
||||
#define XFLOAT_DATA(f) (XFLOAT (f)->u.data)
|
||||
#endif
|
||||
|
||||
/* A character, declared with the following typedef, is a member
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue