diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index b6e8fc314..0e1c33e64 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -4162,14 +4162,6 @@ codegen_undef(codegen_scope *s, node *tree, int val) gen_load_nil(s, val); } -static void -codegen_back_ref(codegen_scope *s, node *tree, int val) -{ - char buf[] = {'$', node_to_char(tree)}; - int sym = new_sym(s, mrb_intern(s->mrb, buf, sizeof(buf))); - gen_load_op2(s, OP_GETGV, sym, val); -} - static void codegen_block_arg(codegen_scope *s, node *tree, int val) { @@ -5598,7 +5590,9 @@ static void gen_back_ref_var(codegen_scope *s, node *varnode, int val) { struct mrb_ast_back_ref_node *n = (struct mrb_ast_back_ref_node*)varnode; - codegen_back_ref(s, int_to_node(n->type), val); + char buf[] = {'$', (char)n->type}; + int sym = new_sym(s, mrb_intern(s->mrb, buf, sizeof(buf))); + gen_load_op2(s, OP_GETGV, sym, val); } static void @@ -6397,10 +6391,6 @@ codegen(codegen_scope *s, node *tree, int val) codegen_const(s, node_to_sym(tree), val); break; - case NODE_BACK_REF: - codegen_back_ref(s, tree, val); - break; - case NODE_ARG: /* should not happen */ break;