summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/rts/storage/Block.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/includes/rts/storage/Block.h b/includes/rts/storage/Block.h
index 4afc3689cb..626cddb2a2 100644
--- a/includes/rts/storage/Block.h
+++ b/includes/rts/storage/Block.h
@@ -84,10 +84,18 @@
// freely modified.
#if !defined(CMINUSMINUS)
+
+
+struct NonmovingSegmentInfo {
+ StgWord8 log_block_size;
+ StgWord16 next_free_snap;
+};
+
typedef struct bdescr_ {
StgPtr start; // [READ ONLY] start addr of memory
+
union {
StgPtr free; // First free byte of memory.
// allocGroup() sets this to the value of start.
@@ -100,10 +108,7 @@ typedef struct bdescr_ {
// indicate that a block is unallocated.
//
// Unused by the non-moving allocator.
- struct NonmovingSegmentInfo {
- StgWord8 log_block_size;
- StgWord16 next_free_snap;
- } nonmoving_segment;
+ struct NonmovingSegmentInfo nonmoving_segment;
};
struct bdescr_ *link; // used for chaining blocks together