From e596cf6e93dbf121e197cccfec8a69902e00eda3 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Wed, 28 May 2025 10:11:58 -0700 Subject: [PATCH] Make FrozenCore a plain T_CLASS --- gc.c | 5 ++++- vm.c | 3 --- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gc.c b/gc.c index 6c230d7820..9b218934b4 100644 --- a/gc.c +++ b/gc.c @@ -1491,7 +1491,10 @@ internal_object_p(VALUE obj) case T_ZOMBIE: break; case T_CLASS: - if (!RBASIC(obj)->klass) break; + if (obj == rb_mRubyVMFrozenCore) + return 1; + + if (!RBASIC_CLASS(obj)) break; if (RCLASS_SINGLETON_P(obj)) { return rb_singleton_class_internal_p(obj); } diff --git a/vm.c b/vm.c index c2f90bd09e..f3e4f1e2ce 100644 --- a/vm.c +++ b/vm.c @@ -4011,9 +4011,6 @@ Init_VM(void) fcore = rb_class_new(rb_cBasicObject); rb_set_class_path(fcore, rb_cRubyVM, "FrozenCore"); rb_vm_register_global_object(rb_class_path_cached(fcore)); - RB_FL_UNSET_RAW(fcore, T_MASK); - RB_FL_SET_RAW(fcore, T_ICLASS); - RCLASSEXT_ICLASS_IS_ORIGIN(RCLASS_EXT_PRIME(fcore)) = true; klass = rb_singleton_class(fcore); rb_define_method_id(klass, id_core_set_method_alias, m_core_set_method_alias, 3); rb_define_method_id(klass, id_core_set_variable_alias, m_core_set_variable_alias, 2);