diff --git a/src/vm.c b/src/vm.c index c415089aa..353924477 100644 --- a/src/vm.c +++ b/src/vm.c @@ -593,6 +593,9 @@ mrb_f_send(mrb_state *mrb, mrb_value self) } if (MRB_METHOD_CFUNC_P(m)) { + if (MRB_METHOD_PROC_P(m)) { + ci->proc = MRB_METHOD_PROC(m); + } return MRB_METHOD_CFUNC(m)(mrb, self); } return mrb_exec_irep(mrb, self, MRB_METHOD_PROC(m));