summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-12-16 09:33:37 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-12-16 09:33:37 +0900
commitddb1aae41de507efb9ab3d7ec2edb23911888783 (patch)
tree0cd562ab233d8bf6a8b589d543b06791a2076a81 /src/vm.c
parent03614ed9189b771a1c3414169e66faae1c1c1b74 (diff)
downloadmruby-ddb1aae41de507efb9ab3d7ec2edb23911888783.tar.gz
mruby-ddb1aae41de507efb9ab3d7ec2edb23911888783.zip
Need to set `ci->proc` before calling methods; fix #3902
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c3
1 files changed, 3 insertions, 0 deletions
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));