diff options
-rw-r--r-- | gc.c | 5 | ||||
-rw-r--r-- | vm.c | 3 |
2 files changed, 4 insertions, 4 deletions
@@ -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); } @@ -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); |