summaryrefslogtreecommitdiffhomepage
path: root/src/kernel.c
diff options
context:
space:
mode:
authorClayton Smith <[email protected]>2017-04-18 11:18:58 -0400
committerClayton Smith <[email protected]>2017-04-18 11:18:58 -0400
commitde969942338ac440294eefb2e7846a6975f4efdd (patch)
tree139500705897adc5198876edd7f9741825d6ea82 /src/kernel.c
parent79e0314337f64bf48b280197f112070011a3619a (diff)
downloadmruby-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.c7
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));
}