aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2004-04-21 22:41:53 +0000
committerStefan Monnier <[email protected]>2004-04-21 22:41:53 +0000
commite0a583f84a0bd4825952424bb8ab2ad93c7194d7 (patch)
tree7d343fcbdade64ccbb0f4f0f3be6ce8c37333fc5 /src/lisp.h
parentf71d34b0a8cec575e8aa1727e2579e2afd00a0e4 (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.h4
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 */