From 556e61d75009be4a9fb47a9754692e428b026375 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Wed, 21 Aug 2013 01:12:00 +0400 Subject: [PATCH] Fix ROOM on Windows. A bit-field inside the page struct is defined as "unsigned fields", on Linux it's packed into 8 bits, but on 32-bit Windows into 32-bits. The code in room expects the former. Defining it as "unsigned char fields" solves the problem. --- NEWS | 1 + src/runtime/gencgc-internal.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 32b6bd2..d82f039 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,7 @@ changes relative to sbcl-1.1.10 setf-expander is already present. Patch by Douglas Katzman. * bug fix: improved threading on PPC. + * bug fix: ROOM works again on Windows. changes in sbcl-1.1.10 relative to sbcl-1.1.9: * enhancement: ASDF has been updated to 3.0.2. diff --git a/src/runtime/gencgc-internal.h b/src/runtime/gencgc-internal.h index 3cb2837..574b198 100644 --- a/src/runtime/gencgc-internal.h +++ b/src/runtime/gencgc-internal.h @@ -67,7 +67,7 @@ struct page { */ page_bytes_t bytes_used; - unsigned + unsigned char /* This is set when the page is write-protected. This should * always reflect the actual write_protect status of a page. * (If the page is written into, we catch the exception, make -- 1.7.10.4