From dc35896174e73cf64da3e591b3e8580d22589c01 Mon Sep 17 00:00:00 2001 From: Jesse McDonald Date: Mon, 9 Nov 2009 09:49:09 -0600 Subject: [PATCH] Need to parenthesize "n" in SPECIAL_VALUE macro for precedence. This was causing the type tags to overlap with fixnums. --- gc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gc.h b/gc.h index f63a618..72bef08 100644 --- a/gc.h +++ b/gc.h @@ -25,13 +25,13 @@ typedef intptr_t fixnum_t; /* Special values (0 <= n < 1024) */ /* These correspond to objects within the first page of memory */ -#define SPECIAL_VALUE(n) ((value_t)(4*n+2)) +#define SPECIAL_VALUE(n) ((value_t)(4*(n)+2)) +#define TYPE_TAG(n) SPECIAL_VALUE(768+(n)) #define MAX_SPECIAL SPECIAL_VALUE(1023) #define BROKEN_HEART SPECIAL_VALUE(0) #define FALSE_VALUE SPECIAL_VALUE(1) #define TRUE_VALUE SPECIAL_VALUE(2) -#define TYPE_TAG(n) SPECIAL_VALUE(2+(n)) #define TYPE_TAG_BOX TYPE_TAG(0) #define TYPE_TAG_VECTOR TYPE_TAG(1)