From ef0cbc2981c5847a452db62dceb064d8bcd25b6a Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 7 May 2025 23:30:41 +0900 Subject: [PATCH] mruby-eval (exec_irep): cache mrb->c->ci to a local variable --- mrbgems/mruby-eval/src/eval.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 9fc243875..c340ce451 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -142,11 +142,13 @@ create_proc_from_string(mrb_state *mrb, const char *s, mrb_int len, mrb_value bi static mrb_value exec_irep(mrb_state *mrb, mrb_value self, struct RProc *proc) { + mrb_callinfo *ci = mrb->c->ci; + /* no argument passed from eval() */ - mrb->c->ci->n = 0; - mrb->c->ci->nk = 0; + ci->n = 0; + ci->nk = 0; /* clear block */ - mrb->c->ci->stack[1] = mrb_nil_value(); + ci->stack[1] = mrb_nil_value(); return mrb_exec_irep(mrb, self, proc, TRUE); }