summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorksss <[email protected]>2014-05-22 00:00:46 +0900
committerksss <[email protected]>2014-05-22 00:00:46 +0900
commitc28b46bcf697b5b9a3ae9ff31e38c520fcaa55e8 (patch)
treedd25f08e51d33ec6286461ffda0bdfd1797062bf
parentf4570d411db6fba6925f4c931f032c187b53ecec (diff)
downloadmruby-c28b46bcf697b5b9a3ae9ff31e38c520fcaa55e8.tar.gz
mruby-c28b46bcf697b5b9a3ae9ff31e38c520fcaa55e8.zip
Class.new do not call `class_eval'
and set self for block argument
-rw-r--r--src/class.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c
index 5c5aa52f0..cb9323fd9 100644
--- a/src/class.c
+++ b/src/class.c
@@ -1105,7 +1105,7 @@ mrb_class_new_class(mrb_state *mrb, mrb_value cv)
}
new_class = mrb_obj_value(mrb_class_new(mrb, mrb_class_ptr(super)));
if (!mrb_nil_p(blk)) {
- mrb_funcall_with_block(mrb, new_class, mrb_intern_lit(mrb, "class_eval"), 0, NULL, blk);
+ mrb_yield_with_class(mrb, blk, 1, &new_class, new_class, mrb_class_ptr(new_class));
}
mrb_funcall(mrb, super, "inherited", 1, new_class);
return new_class;