summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2012-11-14 23:55:06 +0900
committerYukihiro Matz Matsumoto <[email protected]>2012-11-14 23:55:06 +0900
commit0f6c1a034bef4ec2661930f2f8db550463edf665 (patch)
tree5afd61d2f1fa1bcd8a05f46bd65ac3c58703113d
parent78be24c87b684d1a18f5772e6020714d9c0caac7 (diff)
downloadmruby-0f6c1a034bef4ec2661930f2f8db550463edf665.tar.gz
mruby-0f6c1a034bef4ec2661930f2f8db550463edf665.zip
zero initialize singleton_class iv
-rw-r--r--src/class.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/class.c b/src/class.c
index e737a1201..79daa6f86 100644
--- a/src/class.c
+++ b/src/class.c
@@ -74,6 +74,7 @@ make_metaclass(mrb_state *mrb, struct RClass *c)
}
sc = (struct RClass*)mrb_obj_alloc(mrb, MRB_TT_SCLASS, mrb->class_class);
sc->mt = 0;
+ sc->iv = 0;
if (!c->super) {
sc->super = mrb->class_class;
}
@@ -763,9 +764,7 @@ mrb_singleton_class_ptr(mrb_state *mrb, struct RClass *c)
{
struct RClass *sc;
- if (c->tt == MRB_TT_SCLASS) {
- return c;
- }
+ if (o->c->tt == MRB_TT_SCLASS) return;
sc = (struct RClass*)mrb_obj_alloc(mrb, MRB_TT_SCLASS, mrb->class_class);
sc->mt = 0;
sc->super = c;