From be0384cd98432b22b073a82ac254cce964a284eb Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 24 Feb 2016 21:47:32 -0500 Subject: [PATCH] Add padding to integer_type This will prevent assigning to forward() from possibly corrupting memory on 64-bit systems, because the 4-byte int type there does not have enough space to hold an 8-byte pointer. --- include/cyclone/types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cyclone/types.h b/include/cyclone/types.h index bf55921a..e1409c90 100644 --- a/include/cyclone/types.h +++ b/include/cyclone/types.h @@ -235,7 +235,7 @@ typedef symbol_type *symbol; static object quote_##name = nil; /* Define numeric types */ -typedef struct {gc_header_type hdr; tag_type tag; int value;} integer_type; +typedef struct {gc_header_type hdr; tag_type tag; int value; int padding;} integer_type; #define make_int(n,v) integer_type n; n.hdr.mark = gc_color_red; n.hdr.grayed = 0; n.tag = integer_tag; n.value = v; typedef struct {gc_header_type hdr; tag_type tag; double value;} double_type; #define make_double(n,v) double_type n; n.hdr.mark = gc_color_red; n.hdr.grayed = 0; n.tag = double_tag; n.value = v;