summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gc.c5
-rw-r--r--vm.c3
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);