diff options
| author | Clayton Smith <[email protected]> | 2017-04-18 11:18:58 -0400 |
|---|---|---|
| committer | Clayton Smith <[email protected]> | 2017-04-18 11:18:58 -0400 |
| commit | de969942338ac440294eefb2e7846a6975f4efdd (patch) | |
| tree | 139500705897adc5198876edd7f9741825d6ea82 /src/kernel.c | |
| parent | 79e0314337f64bf48b280197f112070011a3619a (diff) | |
| download | mruby-de969942338ac440294eefb2e7846a6975f4efdd.tar.gz mruby-de969942338ac440294eefb2e7846a6975f4efdd.zip | |
Check if sc->mt is initialized before copying it.
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/kernel.c b/src/kernel.c index ef5bc0839..ce304fd99 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -241,7 +241,12 @@ copy_class(mrb_state *mrb, mrb_value dst, mrb_value src) c1->super = mrb_class_ptr(mrb_obj_dup(mrb, mrb_obj_value(c0))); c1->super->flags |= MRB_FLAG_IS_ORIGIN; } - dc->mt = kh_copy(mt, mrb, sc->mt); + if (sc->mt) { + dc->mt = kh_copy(mt, mrb, sc->mt); + } + else { + dc->mt = kh_init(mt, mrb); + } dc->super = sc->super; MRB_SET_INSTANCE_TT(dc, MRB_INSTANCE_TT(sc)); } |
