From 2a6345e957c01f4495323723c7a3d7ac0d4ac339 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Sat, 9 Aug 2025 10:54:22 +0200 Subject: [PATCH] time.c: fix time_mark_and_move when WIDEVALUE_IS_WIDER In such case the pointer need to be casted. --- time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/time.c b/time.c index 7159a93098..95df85db93 100644 --- a/time.c +++ b/time.c @@ -1891,8 +1891,8 @@ static void time_mark_and_move(void *ptr) { struct time_object *tobj = ptr; - if (!FIXWV_P(tobj->timew)) { - rb_gc_mark_and_move(&WIDEVAL_GET(tobj->timew)); + if (!WIDEVALUE_IS_WIDER || !FIXWV_P(tobj->timew)) { + rb_gc_mark_and_move((VALUE *)&WIDEVAL_GET(tobj->timew)); } rb_gc_mark_and_move(&tobj->vtm.year); rb_gc_mark_and_move(&tobj->vtm.subsecx);