Fix ROOM on Windows.
authorStas Boukarev <stassats@gmail.com>
Tue, 20 Aug 2013 21:12:00 +0000 (01:12 +0400)
committerStas Boukarev <stassats@gmail.com>
Tue, 20 Aug 2013 21:12:00 +0000 (01:12 +0400)
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
src/runtime/gencgc-internal.h

diff --git a/NEWS b/NEWS
index 32b6bd2..d82f039 100644 (file)
--- 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.
index 3cb2837..574b198 100644 (file)
@@ -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