From: Ken Raeburn Date: Wed, 24 Jul 2002 02:07:11 +0000 (+0000) Subject: (XPNTR): Use NO_UNION_TYPE version for union as well, X-Git-Tag: ttn-vms-21-2-B4~13892 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8febed74d2eee87bd83fb79880e935b54f9f7f1e;p=emacs.git (XPNTR): Use NO_UNION_TYPE version for union as well, since it only depends on XUINT. --- diff --git a/src/lisp.h b/src/lisp.h index ab2facaa23c..02ccb09a8eb 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -352,26 +352,6 @@ enum pvec_type #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 @@ extern size_t pure_size; #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 @@ extern Lisp_Object make_number (); #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. */