From c28b46bcf697b5b9a3ae9ff31e38c520fcaa55e8 Mon Sep 17 00:00:00 2001 From: ksss Date: Thu, 22 May 2014 00:00:46 +0900 Subject: Class.new do not call `class_eval' and set self for block argument --- src/class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3