summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'class.c')
-rw-r--r--class.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/class.c b/class.c
index d55c37e991..316118bfe3 100644
--- a/class.c
+++ b/class.c
@@ -152,7 +152,12 @@ rb_make_metaclass(obj, super)
RCLASS(klass)->super = RBASIC(rb_class_real(RCLASS(obj)->super))->klass;
}
else {
- RBASIC(klass)->klass = RBASIC(rb_class_real(super))->klass;
+ VALUE metasuper = RBASIC(rb_class_real(super))->klass;
+
+ /* metaclass of a superclass may be NULL at boot time */
+ if (metasuper) {
+ RBASIC(klass)->klass;
+ }
}
return klass;