diff options
author | Stefan Monnier <[email protected]> | 2004-04-21 22:41:53 +0000 |
---|---|---|
committer | Stefan Monnier <[email protected]> | 2004-04-21 22:41:53 +0000 |
commit | e0a583f84a0bd4825952424bb8ab2ad93c7194d7 (patch) | |
tree | 7d343fcbdade64ccbb0f4f0f3be6ce8c37333fc5 /src/lisp.h | |
parent | f71d34b0a8cec575e8aa1727e2579e2afd00a0e4 (diff) |
(XINT) [EXPLICIT_SIGN_EXTEND && !NO_UNION_TYPE]:
Don't make assumptions about the relative place of i and val.
(EQ) [!NO_UNION_TYPE]: Don't forget to check the type match as well.
Diffstat (limited to 'src/lisp.h')
-rw-r--r-- | src/lisp.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lisp.h b/src/lisp.h index 265d3c2927..aa1e0cb8e4 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -382,7 +382,7 @@ enum pvec_type #ifdef EXPLICIT_SIGN_EXTEND /* Make sure we sign-extend; compilers have been known to fail to do so. */ -#define XINT(a) (((a).i << (BITS_PER_EMACS_INT - VALBITS)) \ +#define XINT(a) (((a).s.val << (BITS_PER_EMACS_INT - VALBITS)) \ >> (BITS_PER_EMACS_INT - VALBITS)) #else #define XINT(a) ((a).s.val) @@ -400,7 +400,7 @@ enum pvec_type extern Lisp_Object make_number (); #endif -#define EQ(x, y) ((x).s.val == (y).s.val) +#define EQ(x, y) ((x).s.val == (y).s.val && (x).s.type == (y).s.type) #endif /* NO_UNION_TYPE */ |