diff --git a/src/vm.c b/src/vm.c index 598e87229..23ed1f8dc 100644 --- a/src/vm.c +++ b/src/vm.c @@ -664,7 +664,7 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc ci->mid = mid; ci->proc = MRB_METHOD_PROC_P(m) ? MRB_METHOD_PROC(m) : NULL; - if (ci->proc == NULL) { + if (MRB_METHOD_CFUNC_P(m)) { ci->stack[0] = self; val = MRB_METHOD_CFUNC(m)(mrb, self); cipop(mrb);