From b90f59d36e17bdecbe32db75827b31e3c5d8f14c Mon Sep 17 00:00:00 2001 From: dearblue Date: Wed, 5 Apr 2023 22:11:36 +0900 Subject: [PATCH] Simplify `mrb_top_run()` --- src/vm.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/vm.c b/src/vm.c index ac7d3b908..49ab5abec 100644 --- a/src/vm.c +++ b/src/vm.c @@ -3123,18 +3123,10 @@ mrb_run(mrb_state *mrb, const struct RProc *proc, mrb_value self) MRB_API mrb_value mrb_top_run(mrb_state *mrb, const struct RProc *proc, mrb_value self, mrb_int stack_keep) { - mrb_value v; - - if (!mrb->c->cibase) { - return mrb_vm_run(mrb, proc, self, stack_keep); + if (mrb->c->cibase && mrb->c->ci > mrb->c->cibase) { + cipush(mrb, 0, CINFO_SKIP, mrb->object_class, NULL, NULL, 0, 0); } - if (mrb->c->ci == mrb->c->cibase) { - return mrb_vm_run(mrb, proc, self, stack_keep); - } - cipush(mrb, 0, CINFO_SKIP, mrb->object_class, NULL, NULL, 0, 0); - v = mrb_vm_run(mrb, proc, self, stack_keep); - - return v; + return mrb_vm_run(mrb, proc, self, stack_keep); } #if defined(MRB_USE_CXX_EXCEPTION) && defined(__cplusplus)