summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-06-01 08:28:38 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-06-01 08:28:38 +0900
commiteb69eebfd701a01292c116ada098a71bb25ee625 (patch)
tree7a59016cf9392cca2ebe096ec250c28f1d813ee2 /src/vm.c
parentff7df939ba88389cd7f1a2226b3e1d49822711b3 (diff)
downloadmruby-eb69eebfd701a01292c116ada098a71bb25ee625.tar.gz
mruby-eb69eebfd701a01292c116ada098a71bb25ee625.zip
Simplify code since OP_EXEC never takes CFUNC Proc; #3678
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/vm.c b/src/vm.c
index b3d2b7e10..b9292693c 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -2626,25 +2626,13 @@ RETRY_TRY_BLOCK:
p->target_class = ci->target_class;
ci->proc = p;
- if (MRB_PROC_CFUNC_P(p)) {
- ci->nregs = 0;
- mrb->c->stack[0] = p->body.func(mrb, recv);
- mrb_gc_arena_restore(mrb, ai);
- if (mrb->exc) goto L_RAISE;
- /* pop stackpos */
- mrb->c->stack = mrb->c->ci->stackent;
- cipop(mrb);
- NEXT;
- }
- else {
- irep = p->body.irep;
- pool = irep->pool;
- syms = irep->syms;
- stack_extend(mrb, irep->nregs);
- ci->nregs = irep->nregs;
- pc = irep->iseq;
- JUMP;
- }
+ irep = p->body.irep;
+ pool = irep->pool;
+ syms = irep->syms;
+ stack_extend(mrb, irep->nregs);
+ ci->nregs = irep->nregs;
+ pc = irep->iseq;
+ JUMP;
}
CASE(OP_METHOD) {