Ruby: heap_page Struct Reference

Ruby 3.4.9p82 (2026-03-11 revision 76cca827ab52ab1d346a728f068d5b8da3e2952b)

Data Fields
heap_page Struct Reference

## Data Fields
unsigned short | slot_size
unsigned short | total_slots
unsigned short | free_slots
unsigned short | final_slots
unsigned short | pinned_slots
struct { |
unsigned int before_sweep: 1 |
unsigned int has_remembered_objects: 1 |
unsigned int has_uncollectible_wb_unprotected_objects: 1 |
} | flags
rb_heap_t * | heap
struct heap_page * | free_next
struct heap_page_body * | body
uintptr_t | start
struct free_slot * | freelist
struct ccan_list_node | page_node
bits_t | wb_unprotected_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | mark_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | uncollectible_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | marking_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | remembered_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | pinned_bits [HEAP_PAGE_BITMAP_LIMIT]
bits_t | age_bits [HEAP_PAGE_BITMAP_LIMIT *RVALUE_AGE_BIT_COUNT]

## Detailed Description

Definition at line 712 of file default.c.

## Field Documentation

## ◆ age_bits

bits_t heap_page::age_bits[HEAP_PAGE_BITMAP_LIMIT *RVALUE_AGE_BIT_COUNT]

Definition at line 742 of file default.c.

## ◆ before_sweep

unsigned int heap_page::before_sweep

Definition at line 719 of file default.c.

## ◆ body

struct heap_page_body* heap_page::body

Definition at line 727 of file default.c.

## ◆ final_slots

unsigned short heap_page::final_slots

Definition at line 716 of file default.c.

## ◆ free_next

struct heap_page* heap_page::free_next

Definition at line 726 of file default.c.

## ◆ free_slots

unsigned short heap_page::free_slots

Definition at line 715 of file default.c.

## ◆ freelist

struct free_slot* heap_page::freelist

Definition at line 729 of file default.c.

## ◆ has_remembered_objects

unsigned int heap_page::has_remembered_objects

Definition at line 720 of file default.c.

## ◆ has_uncollectible_wb_unprotected_objects

unsigned int heap_page::has_uncollectible_wb_unprotected_objects

Definition at line 721 of file default.c.

## ◆ heap

rb_heap_t* heap_page::heap

Definition at line 724 of file default.c.

## ◆ mark_bits

bits_t heap_page::mark_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 734 of file default.c.

## ◆ marking_bits

bits_t heap_page::marking_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 736 of file default.c.

## ◆ page_node

struct ccan_list_node heap_page::page_node

Definition at line 730 of file default.c.

## ◆ pinned_bits

bits_t heap_page::pinned_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 741 of file default.c.

## ◆ pinned_slots

unsigned short heap_page::pinned_slots

Definition at line 717 of file default.c.

## ◆ remembered_bits

bits_t heap_page::remembered_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 738 of file default.c.

## ◆ slot_size

unsigned short heap_page::slot_size

Definition at line 713 of file default.c.

## ◆ start

uintptr_t heap_page::start

Definition at line 728 of file default.c.

## ◆ total_slots

unsigned short heap_page::total_slots

Definition at line 714 of file default.c.

## ◆ uncollectible_bits

bits_t heap_page::uncollectible_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 735 of file default.c.

## ◆ wb_unprotected_bits

bits_t heap_page::wb_unprotected_bits[HEAP_PAGE_BITMAP_LIMIT]

Definition at line 732 of file default.c.

The documentation for this struct was generated from the following file:

- gc/default/default.c