From 53f750dbed85bdf7342d5c4b1bc013c3169c15d6 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 9 Aug 2013 22:25:45 +0900 Subject: def statement and define_method now return symbol a la Ruby2.1 --- src/class.c | 2 +- src/codegen.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/class.c b/src/class.c index 7fc8fabbb..c10f7449b 100644 --- a/src/class.c +++ b/src/class.c @@ -1486,7 +1486,7 @@ mod_define_method(mrb_state *mrb, mrb_value self) mrb_proc_copy(p, mrb_proc_ptr(blk)); p->flags |= MRB_PROC_STRICT; mrb_define_method_raw(mrb, c, mid, p); - return blk; + return mrb_symbol_value(mid); } static void diff --git a/src/codegen.c b/src/codegen.c index 34ccd616f..9b7116168 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -2317,7 +2317,7 @@ codegen(codegen_scope *s, node *tree, int val) pop(); genop(s, MKOP_AB(OP_METHOD, cursp(), sym)); if (val) { - genop(s, MKOP_A(OP_LOADNIL, cursp())); + genop(s, MKOP_ABx(OP_LOADSYM, cursp(), sym)); push(); } } @@ -2337,7 +2337,7 @@ codegen(codegen_scope *s, node *tree, int val) pop(); genop(s, MKOP_AB(OP_METHOD, cursp(), sym)); if (val) { - genop(s, MKOP_A(OP_LOADNIL, cursp())); + genop(s, MKOP_ABx(OP_LOADSYM, cursp(), sym)); push(); } } -- cgit v1.2.3