summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2025-09-09 09:18:50 -0400
committerPeter Zhu <peter@peterzhu.ca>2025-09-11 10:17:31 -0400
commit17039c566b76854c8246b4a4feb2f5bd2ebf8447 (patch)
treedc53537f02f41210b6f7977dd595aa317e2baa03
parentaa173bcef826adfb84718314f4d0b4547b118730 (diff)
Don't include klass in RZombie
klass is not used, so we can shrink RZombie down to 32 bytes.
-rw-r--r--gc/default/default.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gc/default/default.c b/gc/default/default.c
index aa06b7cc06..d5b18d20b9 100644
--- a/gc/default/default.c
+++ b/gc/default/default.c
@@ -993,7 +993,7 @@ total_final_slots_count(rb_objspace_t *objspace)
#endif
struct RZombie {
- struct RBasic basic;
+ VALUE flags;
VALUE next;
void (*dfree)(void *);
void *data;
@@ -2586,7 +2586,7 @@ rb_gc_impl_make_zombie(void *objspace_ptr, VALUE obj, void (*dfree)(void *), voi
rb_objspace_t *objspace = objspace_ptr;
struct RZombie *zombie = RZOMBIE(obj);
- zombie->basic.flags = T_ZOMBIE | (zombie->basic.flags & ZOMBIE_OBJ_KEPT_FLAGS);
+ zombie->flags = T_ZOMBIE | (zombie->flags & ZOMBIE_OBJ_KEPT_FLAGS);
zombie->dfree = dfree;
zombie->data = data;
VALUE prev, next = heap_pages_deferred_final;