diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-27 08:21:39 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-27 08:21:39 +0900 |
| commit | b31a90614d90ddd4607933ba6992e000ad04fc59 (patch) | |
| tree | f7530370022af3180d498d521fed463984c26dc7 /src/class.c | |
| parent | 62071f7afe266bb5310d99f43e01c672fda589f6 (diff) | |
| download | mruby-b31a90614d90ddd4607933ba6992e000ad04fc59.tar.gz mruby-b31a90614d90ddd4607933ba6992e000ad04fc59.zip | |
boot_defclass: super may be NULL
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/class.c b/src/class.c index be38fd55c..84f8ea70e 100644 --- a/src/class.c +++ b/src/class.c @@ -731,8 +731,13 @@ boot_defclass(mrb_state *mrb, struct RClass *super) struct RClass *c; c = (struct RClass*)mrb_obj_alloc(mrb, MRB_TT_CLASS, mrb->class_class); - c->super = super ? super : mrb->object_class; - mrb_field_write_barrier(mrb, (struct RBasic*)c, (struct RBasic*)super); + if (super) { + c->super = super; + mrb_field_write_barrier(mrb, (struct RBasic*)c, (struct RBasic*)super); + } + else { + c->super = mrb->object_class; + } c->mt = kh_init(mt, mrb); return c; } |
