From 4a082b5d347951ad7d2007d6726f3cfe5232a382 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Sun, 21 Sep 2025 11:33:23 -0400 Subject: [PATCH] Fix assertion in rb_gc_impl_mark_weak The FL_WB_PROTECTED flag is no longer used and is not set on objects, so that assertion cannot be true. Instead, we should use RVALUE_WB_UNPROTECTED. --- gc/default/default.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gc/default/default.c b/gc/default/default.c index b7d3714973..423d27dde1 100644 --- a/gc/default/default.c +++ b/gc/default/default.c @@ -4505,7 +4505,7 @@ rb_gc_impl_mark_weak(void *objspace_ptr, VALUE *ptr) { rb_objspace_t *objspace = objspace_ptr; - GC_ASSERT(objspace->rgengc.parent_object == 0 || FL_TEST(objspace->rgengc.parent_object, FL_WB_PROTECTED)); + GC_ASSERT(objspace->rgengc.parent_object == 0 || !RVALUE_WB_UNPROTECTED(objspace, objspace->rgengc.parent_object)); VALUE obj = *ptr;