From 3d1b8e7298957711998bfb2e8cce09bcc17e4d46 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Thu, 15 May 2025 12:29:54 +0200 Subject: [PATCH] newobj_fill: don't assume RBasic size The previous implementation assumed `RBasic` size is `2 * sizeof(VALUE)`, might as well not make assumption and use a proper `sizeof`. Co-Authored-By: John Hawthorn --- gc/default/default.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gc/default/default.c b/gc/default/default.c index 5bbdc1e026..da1438c2fe 100644 --- a/gc/default/default.c +++ b/gc/default/default.c @@ -2073,10 +2073,10 @@ heap_prepare(rb_objspace_t *objspace, rb_heap_t *heap) static inline VALUE newobj_fill(VALUE obj, VALUE v1, VALUE v2, VALUE v3) { - VALUE *p = (VALUE *)obj; - p[2] = v1; - p[3] = v2; - p[4] = v3; + VALUE *p = (VALUE *)(obj + sizeof(struct RBasic)); + p[0] = v1; + p[1] = v2; + p[2] = v3; return obj; }