]> git.eshelyaron.com Git - emacs.git/commitdiff
(XINT) [EXPLICIT_SIGN_EXTEND && !NO_UNION_TYPE]:
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 21 Apr 2004 22:41:53 +0000 (22:41 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 21 Apr 2004 22:41:53 +0000 (22:41 +0000)
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.

src/lisp.h

index 265d3c292737cfcc67a88fd20d31e8a9029f6515..aa1e0cb8e40ddcbf7bbd87ebb3b430371e79905f 100644 (file)
@@ -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 */