# HG changeset patch # User Ken Raeburn # Date 1027476431 0 # Node ID 445d27e933805b8b55cd06e966576fce1a411f99 # Parent 5b983d53ff0267b61546dec390c808aa3968013b (XPNTR): Use NO_UNION_TYPE version for union as well, since it only depends on XUINT. diff -r 5b983d53ff02 -r 445d27e93380 src/lisp.h --- a/src/lisp.h Tue Jul 23 19:33:09 2002 +0000 +++ b/src/lisp.h Wed Jul 24 02:07:11 2002 +0000 @@ -352,26 +352,6 @@ #define XUINT(a) ((EMACS_UINT) ((a) & VALMASK)) #endif -#ifndef XPNTR -#ifdef HAVE_SHM -/* In this representation, data is found in two widely separated segments. */ -extern size_t pure_size; -#define XPNTR(a) \ - (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS)) -#else /* not HAVE_SHM */ -#ifdef DATA_SEG_BITS -/* This case is used for the rt-pc. - In the diffs I was given, it checked for ptr = 0 - and did not adjust it in that case. - But I don't think that zero should ever be found - in a Lisp object whose data type says it points to something. */ -#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS) -#else -#define XPNTR(a) XUINT (a) -#endif -#endif /* not HAVE_SHM */ -#endif /* no XPNTR */ - #ifndef XSET #define XSET(var, type, ptr) \ ((var) = ((EMACS_INT)(type) << VALBITS) + ((EMACS_INT) (ptr) & VALMASK)) @@ -437,7 +417,6 @@ #endif /* EXPLICIT_SIGN_EXTEND */ #define XUINT(a) ((a).u.val) -#define XPNTR(a) ((a).u.val) #define XSET(var, vartype, ptr) \ (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype)))) @@ -463,6 +442,26 @@ #endif /* NO_UNION_TYPE */ +#ifndef XPNTR +#ifdef HAVE_SHM +/* In this representation, data is found in two widely separated segments. */ +extern size_t pure_size; +#define XPNTR(a) \ + (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS)) +#else /* not HAVE_SHM */ +#ifdef DATA_SEG_BITS +/* This case is used for the rt-pc. + In the diffs I was given, it checked for ptr = 0 + and did not adjust it in that case. + But I don't think that zero should ever be found + in a Lisp object whose data type says it points to something. */ +#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS) +#else +#define XPNTR(a) XUINT (a) +#endif +#endif /* not HAVE_SHM */ +#endif /* no XPNTR */ + /* Largest and smallest representable fixnum values. These are the C values. */